gpt4 book ai didi

coldfusion - 将 PDF 缩放到单页

转载 作者:行者123 更新时间:2023-12-04 19:20:47 25 4
gpt4 key购买 nike

是否有一种简单的方法可以使用 CF8 将 cfdocument 或 cfpdf 创建的 pdf 缩放到单个页面?根据事件的数量,我的输出(日历)可能会扩展到第 2 页。我宁愿缩放日历以适合一页。我假设我可以用 cfdocument 创建 pdf。使用 cfpdf 检查页码并循环,而 totalPages > 1 创建具有较小比例的 PDF。

伪代码:

pdfScale = 100
cfdocument scale = "#pdfScale#"
cfpdf action = "getinfo" name = "mypdf"
cfloop while mypdf.totalPages > 1
pdfScale = pdfScale -5
cfdocument scale = "#pdfScale#"
cfpdf action = "getinfo" name = "mypdf"
/cfloop

我是在正确的轨道上还是我错过了一些让这更容易的东西?谢谢。

最佳答案

你的理论对我来说似乎很合理——你应该尝试一下并找出答案。由于这是一个相当无聊的答案,我还将您的伪代码转换为真实代码:

<cfset pdfScale = 100 />
<cfset pdfObj = "" />
<cfdocument format="pdf" name="pdfObj" scale="#pdfScale#">document contents</cfdocument>
<cfpdf action="getInfo" source="#pdfObj#" name="pdfInfo" />
<cfloop condition = "pdfInfo.TotalPages gt 1">
<cfset pdfScale -= 5 />
<cfdocument format="pdf" name="pdfObj" scale="#pdfScale#">document contents</cfdocument>
<cfpdf action="getInfo" source="#pdfObj#" name="pdfInfo" />
</cfloop>

根据您的设置,您可能还想将 PDF 的创建抽象为一个函数,这样您就不必在页面上重新编写所有内容两次。或者你可以使用一个包含。哎呀,如果有任何类型的复杂处理正在进行以呈现 PDF 的 HTML(我假设有,因为您正在制作日历),那么您甚至可能想要预呈现内容并重新使用它,像这样:
<cfsavecontent variable="docContents">document contents go here</cfsavecontent>
<cfset pdfScale = 100 />
<cfset pdfObj = "" />
<cfdocument format="pdf" name="pdfObj" scale="#pdfScale#"><cfoutput>#docContents#</cfoutput></cfdocument>
<cfpdf action="getInfo" source="#pdfObj#" name="pdfInfo" />
<cfloop condition = "pdfInfo.TotalPages gt 1">
<cfset pdfScale -= 5 />
<cfdocument format="pdf" name="pdfObj" scale="#pdfScale#"><cfoutput>#docContents#</cfoutput></cfdocument>
<cfpdf action="getInfo" source="pdfObj" name="pdfInfo" />
</cfloop>

关于coldfusion - 将 PDF 缩放到单页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3689219/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com