我正在编辑一个包含矢量文本和数学公式的旧 PDF。具体来说,我正在提取一份试卷中的一道题,因此在提取相应页面后,我仍然需要删除第一页题目之前和最后一页题目之后的一些内容。
这使我将内容向上移动,从一个页面移到另一个页面。目前,我正在使用 Inkscape 进行这种移动。Inkscape 允许我在尽可能多的文档中打开不同的页面。我使用 Poppler/Cairo 导入,因为内部导入系统无法正确呈现文本。
有了它,只要我还在一个文档(页面)上,一切都会顺利运行。但是,当将内容从一个页面移动到另一个页面时,粘贴的内容无法使用,似乎是因为字形引用损坏了。
因此,我使用 将原始 PDF 中的所有文本转换为曲线gs -dNoOutputFonts -sDEVICE=pdfwrite in.pdf out.pdf
,然后执行上述操作。这种方法有效,但在使用 重新组装 SVG 文件后,最终得到的 PDF 文件非常大rsvg-convert -f pdf -o final.pdf page*.svg
。
我认为最好的事情是不要破坏字形,而是让 Inkscape 在复制和粘贴时转换字形表,或者对从同一 PDF 文件中提取的所有页面使用通用字形表。
我该如何实现这一点?或者也许有更好的工作流程?我不想栅格化文档。
答案1
如果我理解正确的话,
你在单独的 Inkscape 窗口中打开原始 PDF 的每一页,
该问题是将导入的内容从一个 Inkscape 窗口复制粘贴到另一个窗口时出现的错误。
您可以通过更改第一步来删除第二步。将原始 PDF 的两个连续页面(或更多,如果需要?)导入到单个 Inkscape 窗口中,然后使用单击并拖动、分组和对齐或编辑工具栏中显示的坐标来重新排列。
PS:您也可以考虑使用 latex 和 pdfpages 包将原始 PDF 的修剪/剪辑部分包含到 latex 文档中。请参阅http://ctan.tetaneutral.net/macros/latex/contrib/pdfpages/pdfpages.pdf