Acrobat 或任何其他 pdf 查看器都不会打印连接线注释

Acrobat nor any other pdf viewer won't print connected line annotations

与此问题类似,但解决方案无效。 Adobe Acrobat Reader doesn't print my drawing on a PDF

我使用Boox Max Carta来编写和注释pdf作品。 注释从 e-reader 导出为类别连接线的 pdf 注释(注释)。

Here is an example file.

当我打印时,如果我 select 文档和标记 - 我什么也得不到。

如果我 select 总结评论,那么我会得到每个注释的数字,但没有涂鸦。

打印带注释的 pdf 需要做什么?

有没有办法把它拼成图片之类的?

解决方案 - 感谢@mkl 找到根本原因

使用 Python PyMuPdf 库遍历页面和注释,为每个页面和注释添加一个标志。

""" Recipies used
https://pymupdf.readthedocs.io/en/latest/faq/#how-to-search-for-and-mark-text
https://pymupdf.readthedocs.io/en/latest/faq/#how-to-add-and-modify-annotations
"""

import sys
import fitz
fname = sys.argv[1]                    # filename
doc = fitz.open(fname)
updated_annot_count = 0;
for page in doc:       
    current_annot = page.firstAnnot;                # scan through the pages
    while current_annot:
        current_annot.setFlags(current_annot.flags|fitz.ANNOT_XF_Print)
        current_annot = current_annot.next          # Follow linked list
        updated_annot_count = updated_annot_count+1


if doc:
    doc.save("printable-" + doc.name)

The Pdf renders fine on the computer screen in both Chrome and Adobe Acrobat (2017)

所有的线图标注(实际上还有LineSquarePolygon, 和 PolyLine) 有 no Flags 条目;因此,它们的注释标志值默认为 0,清除所有标志。

F integer (Optional; PDF 1.1) A set of flags specifying various characteristics of the annotation (see 12.5.3, “Annotation Flags”). Default value: 0.

(ISO 32000-1, Table 164 – 所有注释词典共有的条目)

特别是 打印 标志被清除。

3 Print (PDF 1.2) If set, print the annotation when the page is printed. If clear, never print the annotation, regardless of whether it is displayed on the screen.

(ISO 32000-1, Table 165 – 注释标记)

因此,您的注释明确创建为 永远不会打印

如果仍然要打印它们,请设置注释的 打印 标志。

这应该是使用任何通用 PDF 库实现的简单任务。