生成的pdf文件的分辨率

时间:2019-05-02 09:45:14

标签: c# html pdf-generation syncfusion

我对基于HTML生成的PDF文件中的分辨率有疑问

我正在使用HtmlToPdfConverter中的SyncfusionWebKitConverter

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);

是否可以通过某种方式设置它始终有效?

2 个答案:

答案 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,依此类推

满足单位

  1. “ Ems”(em):“ em”是Web文档中使用的可伸缩单位 媒体。例如,如果em等于当前字体大小, 文档的字体大小为12pt,1em等于12pt。 Ems是 本质上是可扩展的,因此2em等于24pt,.5em等于6pt, 等等。由于以下原因,Em在Web文档中变得越来越流行 可扩展性及其对移动设备的友好性。
  2. 像素(px):像素是屏幕中使用的固定尺寸单位 媒体(即在计算机屏幕上读取)。一像素相等 到计算机屏幕上的一个点( 屏幕的分辨率)。许多网页设计师在网页中使用像素单元 为了产生一个完美的像素表示 在浏览器中呈现的网站。一个问题 像素单位是视障者无法向上缩放 读者或向下阅读以适应移动设备。
  3. 点数(pt):传统上,点数用于印刷媒体( 将其打印在纸上等)。 1分等于1的72 一英寸。点很像像素,因为它们是固定大小的 单位,并且无法缩放。
  4. 百分比(%):百分比单位与“ em”单位非常相似,不同之处在于 基本差异不大。首先,当前 font-size等于100%(即12pt = 100%)。在使用 百分比单位,您的文本对于移动设备仍然可以完全扩展 和可访问性。

那么,有什么区别? 当您看到字体大小单位时,很容易理解它们之间的区别。通常, 1em = 12pt = 16px = 100%。使用这些字体大小时,让我们看看将基本字体大小(使用body CSS选择器)从100%增加到120%

会发生什么情况。

enter image description here

如您所见,em和百分比单位都随着基本字体大小的增加而变大,而像素和点却没有。设置文本的绝对大小可能很容易,但是访问者使用可在任何设备或任何机器上显示的可缩放文本则容易得多。因此,Web文档文本首选使用em和percent单位。

https://kyleschaeffer.com/css-font-size-em-vs-px-vs-pt-vs-percent