我有一个逻辑来导出avery标签pdf。逻辑正确导出pdf标签,但是当我打印pdf时,我通过的页面大小测量(页面属性)与打印页面不匹配。
页面属性
multiprocessing
在应用之前,上述属性值首先等同于Width="48.5" Height="25.4" HorizontalGapWidth="0" VerticalGapHeight="0" PageMarginTop="21" PageMarginBottom="21" PageMarginLeft="8" PageMarginRight="8" PageSize="A4" LabelsPerRow="4" LabelRowsPerPage="10"
值。
转换为
point
逻辑
private float mmToPoint(double mm)
{
return (float)((mm / 25.4) * 72);
}
答案 0 :(得分:2)
PDF文档可能具有非常准确的测量结果,但随后在打印过程中缩放页面会使这些测量结果变得紧张。这是一个常见问题:当您使用不同的打印机打印文档时,不同的打印机将使用不同的缩放因子和不同的结果。
如何避免这种情况?
在Adobe Reader的打印对话框中,您可以选择打印机的行为方式:
默认情况下,打印机会尝试“适应”页面上的内容,但由于并非每台打印机都可以物理使用整页大小(由于硬件限制),因此打印机很可能会缩小页面大小如果你使用“Fit”。
最好选择“实际尺寸”选项。使用此选项的缺点是某些内容可能会丢失,因为它太靠近打印机无法访问的区域中的页面边框,但优点是测量将被保留。
您可以通过告知文档不应缩放来以编程方式在文档中设置此选项:
writer.AddViewerPreference(PdfName.PRINTSCALING, PdfName.NONE);
有关观众偏好的详情,请参阅How to set initial view properties?。