Вам необходим размер печати, чтобы установить DPI
Холст безразмерен. Без известного фиксированного размера точки на дюйм не имеет смысла.
Вы можете напечатать холст размером 240 на 240 с разрешением 240 точек на дюйм, напечатав его размером 1 на 1 дюйм. Этот же холст будет также иметь разрешение 24dpi, если вы напечатаете его размером 10 на 10 дюймов.
Если вы хотите, чтобы плотность пикселей холста соответствовала какому-либо DPI, вам нужно установить разрешение холста, соответствующее известномуразмер печати, и при печати холста необходимо указать этот размер, иначе значение DPI не будет соответствовать.
Пример. Установите разрешение холста в соответствии с известным размером печати и точками на дюйм
Чтобы напечатать холст, чтобы он уместился на странице формата А4, с разрешением 240 точек на дюйм
const A4_PAGE_SIZE = {width: 8.27, height: 11.69); // in inches
const DPI = 240;
canvas.width = A4_PAGE_SIZE.width * DPI; // ~1984px
canvas.height = A4_PAGE_SIZE.height * DPI; // ~2805px
Теперь визуализируйте содержимое холста в соответствии с новым разрешением холста и выполните преобразование. в PNG. Затем можно распечатать изображение с разрешением 240 т / д, установив размер печати 8,27 на 11,69 дюйма.
Примечание Если вы не визуализируете содержимое холста (например, содержимое является загруженным изображением)) затем вы должны сопоставить размер холста с размером изображения, поэтому разрешение холста выше (или ниже) исходного изображения приведет к снижению качества печати, поскольку масштабирование, используемое в API Canvas 2D, не предназначено для печати.
Примечание Формат изображения PNG позволяет указывать физический размер изображения PNG, задавая количество пикселей на метр, а не общее количество пикселей в заголовке. Однако вы не можете сделать это через нативный API Canvas. Вам понадобится сторонний PNG-кодировщик для установки этой информации заголовка.