3

我有一个通过 CFDocument 标签生成的 PDF。当它生成 PDF 并单击“打印机”图标以弹出打印对话框时。对于页面大小和处理,如果设置为“适合”或“缩小超大页面”,则打印效果很好。如果选择了“实际大小”,则页眉会从页面上移开并被切掉。我在 Windows 7 上使用 ColdFusion 11。

为了重新创建它,我删除了所有样式并使用以下基本代码进行了简单测试:

<cfdocument format="PDF" saveAsName="test_#dateFormat(now(),'yyyymmdd')#T#timeFormat(now(),'hhmmss')#.pdf">
   <cfdocumentitem type="header">HEADER</cfdocumentitem>
   <cfdocumentsection>
       BODY
   </cfdocumentsection>
   <cfdocumentitem type="footer">
       #cfdocument.currentpagenumber# / #cfdocument.totalpagecount#
   </cfdocumentitem>
</cfdocument>

生成以下PDF: PDF 生成

然后我点击弹出打印机设置的“打印机”图标: 缩小超大页面

如果您仔细查看对话框中的预览图像,您可以看到标题文本在文档中。现在,如果我选择“实际尺寸”,它会给出以下信息: 真实大小

如果您查看预览,这次您可以看到所有内容都向上移动,并且标题部分位于文档之外,这导致一半的标题在打印时被切掉并且难以辨认。

任何人都知道为什么会发生这种情况以及如何解决它?

4

2 回答 2

1

为了解决这个问题,我最终在 CFDocument 中使用 pageWidth 和 pageHeight 以及 pageType 属性。

<cfdocument format="PDF" pageType="custom" pageWidth="8.5" pageHeight="10.75" saveAsName="test_#dateFormat(now(),'yyyymmdd')#T#timeFormat(now(),'hhmmss')#.pdf">
   <cfdocumentitem type="header">HEADER</cfdocumentitem>
   <cfdocumentsection>
       BODY
   </cfdocumentsection>
   <cfdocumentitem type="footer">
       #cfdocument.currentpagenumber# / #cfdocument.totalpagecount#
   </cfdocumentitem>
</cfdocument>

标准字母大小为 8.5" X 11"(这是 CFDocument 中的默认值),所以我只是将高度稍微调整为 10.75",即使我在打印对话框中单击“实际大小”,页眉也会保持在页面边界内。似乎有点奇怪的是,我必须这样做才能使标题适合页面而不会被切掉,但它可以工作。进一步调整高度只会过度缩放标题并且看起来不太好,所以我选择了 10.75"。

于 2016-01-01T18:33:19.643 回答
0

老实说,对我来说,使用 cfdocument 标签简直是残酷的。如果您可以使用外部工具来做同样的事情(换句话说,如果您的业务和系统管理员允许您使用它们),我建议使用 WKHTMLToPDF。你可以在这里找到更多信息:http ://wkhtmltopdf.org/

我不得不说我们很幸运地使用了这个工具。如果这在您的环境中很重要,它也可以跨平台工作。

希望这可以帮助。

于 2015-12-31T16:36:21.837 回答