我对基于HTML生成的PDF文件中的分辨率有疑问
我正在使用HtmlToPdfConverter
中的Syncfusion
和WebKitConverter
A4纸张尺寸设置为595px x 842px
我在Windows 7
上使用了较旧的屏幕。一切都很好
在具有不同屏幕的Windows 10
系统上运行时,纸张内容大于纸张。文字太大,图片太大
文本的大小也以像素为单位设置。
确保区别在于PPI
具有生成器设置的代码段:
PdfMargins margins = new PdfMargins();
margins.Left = 50;
margins.Right = 50;
margins.Top = 0;
margins.Bottom = 0;
settings.Margin = margins;
settings.Orientation = PdfPageOrientation.Portrait;
settings.WebKitViewPort = new System.Drawing.Size(595, 0);
settings.PdfPageSize = new SizeF(595, 842);
是否可以通过某种方式设置它始终有效?
答案 0 :(得分:1)
PDF文档的内容大小可能会根据进行转换的机器/应用程序而有所不同。如果在所有机器/应用程序中都需要相同的输出,请在WebKitViewPort属性中设置固定的视口大小。 WebKit HTML转换器内部使用系统视口大小将HTML转换为PDF。系统视口大小可能会因系统和应用程序而异。
即使固定的WebKitViewPort大小也无济于事,请为我们提供完整的转换代码段,以便对我们进行分析和进一步帮助您。
有关WebKit视口的更多详细信息,请参考以下链接。
UG: https://help.syncfusion.com/file-formats/pdf/convert-html-to-pdf/webkit#viewport
KB: https://www.syncfusion.com/kb/7412/
注意:我为Syncfusion工作
答案 1 :(得分:0)
尝试使用em而不是px设置文本大小。您可以按百分比设置图片。您想使所有内容都缩放到纸张尺寸。
“ Ems”(em):“ em”是Web文档中使用的可伸缩单位 媒体。例如,如果em等于当前字体大小, 文档的字体大小为12pt,1em等于12pt。 Ems是 可扩展性,因此2em等于24pt,.5em等于6pt,依此类推
满足单位
那么,有什么区别? 当您看到字体大小单位时,很容易理解它们之间的区别。通常, 1em = 12pt = 16px = 100%。使用这些字体大小时,让我们看看将基本字体大小(使用body CSS选择器)从100%增加到120%
会发生什么情况。如您所见,em和百分比单位都随着基本字体大小的增加而变大,而像素和点却没有。设置文本的绝对大小可能很容易,但是访问者使用可在任何设备或任何机器上显示的可缩放文本则容易得多。因此,Web文档文本首选使用em和percent单位。
https://kyleschaeffer.com/css-font-size-em-vs-px-vs-pt-vs-percent