如何使用 wkhtmltopdf 为 Kindle Direct Publishing 创建 PDF
Posted
技术标签:
【中文标题】如何使用 wkhtmltopdf 为 Kindle Direct Publishing 创建 PDF【英文标题】:How do you create a PDF for Kindle Direct Publishing with wkhtmltopdf 【发布时间】:2019-07-10 03:09:31 【问题描述】:Kindle Direct Publishing AKA Create Space,想要一个 6x9 格式的 PDF/X-1a,外边距为 0.25",内边距为 0.375",我需要帮助,因为 Qt PDF 生成器不能内外兼修,所以我必须将它们都设置为最大,我需要知道我的css是否会影响这一点,如果是这样的话,但是设置 --margin-left .375in --margin-right .375in 会给我这个错误:目前所有边距单位必须相同,不知道这意味着什么,如果它们必须相同,为什么要有左右,这真的必须适用于顶部和底部,是什么想法,所以我将它添加到顶部和底部只是为了制作文件,但这不是我想要的边距,我想知道 gs 是否可以解决这个问题? 如果有怎么办。
我知道 wkhtmltopdf 目前只创建 PDF 版本 1.4,而 Kindle 似乎不太介意上传,我还没有发布的上传,所以我希望有人从经验中知道这一点,因为我没有知道他们是否会接受,所以我也使用 Ghost Script 将其转换为 PDF 1.7 版,这就是我目前所拥有的: PDF_Combine 是一个 bash 文件数组: PDF_Combine=("file1.html" "file2.html");
更新:现在 KDP 想要 .875 英寸的边距,两边我的内容都很小,CSS 效果如何影响 PDF 中的边距,我可以在 wkhtmltopdf 中将边距设置为 0 并在我的 CSS 中调整它们,如果是这样,如何,在体内?
wkhtmltopdf --margin-left .375in --margin-right .375in --margin-bottom .375in --margin-top .375in --page-width 6in --page-height 9in --load-error-handling ignore --javascript-delay 3333 --enable-forms --footer-center "[page]/[topage]" "$PDF_Combine[@]" "/MyPath/MyFileName.pdf"
幽灵脚本:
gs -dPDFA -dBATCH -dNOPAUSE -sProcessColorModel=DeviceCMYK -sDEVICE=pdfwrite -sPDFACompatibilityPolicy=1 -sOutputFile="/MyPath/MyOutPutFileName.pdf" "/MyPath/MyInPutFileName.pdf"
【问题讨论】:
你可以写两个以上的句子。 【参考方案1】:PDF/X-1a 是一组高度特定的受限 PDF 功能;例如,您在生成 PDF/X-1a 时不能使用 RGB 颜色模型
您还需要在 PDF 文件的 Info 字典中出现特定的键。
Ghostscript 不会创建 PDF/X-1a 文件。它可以创建 PDF/X-3 文件,但这对你没有好处。
您可以使用 Ghostscript 处理 PDF 文件以在页面周围添加空白,您需要做的是指定更大的媒体大小,并告诉 Ghostscript 其固定大小,因此 PDF 文件无法更改它。然后您需要在新媒体上将内容向上和向右偏移(因为否则内容将呈现在左下角)。笔记;我不清楚你是想增加媒体大小,还是缩小内容以适应所需的媒体,但有边距。
查看问题here的答案和cmets。
【讨论】:
我的问题是内边距太小,所以文字离开页面,而外边又太大,所以我浪费了纸张,但目前看起来内容还不错。另请注意,我已经上传了 PDF 版本 1.4,KDP 并没有抱怨。 那么亚马逊可能对 PDF 1.4 很满意。听起来您需要在添加边距的同时缩小页面内容,我在上面指出的问题同时满足了这两个要求。显然,您需要根据自己的要求调整数字。以上是关于如何使用 wkhtmltopdf 为 Kindle Direct Publishing 创建 PDF的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 wkhtmltopdf 获取 html 生成的 pdf 中的页码
如何在 ASP.net 中使用 wkhtmltopdf.exe [重复]