CFDocument PDF - 打印时页眉被截断

CFDocument PDF - Header Gets Cut Off When Printing

我有一个通过 CFDocument 标签生成的 PDF。当它生成 PDF 时,您单击 "printer" 图标弹出打印对话框。对于页面大小和处理,如果将其设置为 "Fit" 或 "Shrink oversized pages",则打印效果很好。如果 "Actual size" 被 select 编辑,那么页眉就会移出页面并被切断。 我在 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:

然后我点击弹出打印机设置的"Printer"图标:

如果仔细观察对话框中的预览图像,您会发现页眉文本位于文档中。 现在,如果我 select "Actual size" 相反,它会给出以下内容:

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

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

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

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

希望这对您有所帮助。

为了解决这个问题,我最终使用了 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",即使我单击 [=15],header 仍保持在页面边界内=] 在打印对话框中。 似乎有点奇怪,我必须这样做才能使 header 适合页面而不被切断,但它有效。进一步调整高度只会将 header 缩放得太多而且看起来不太好,所以我选择了 10.75"。