我在我的 reportlab 中使用亚洲字体(简体/繁体、日语和韩语)生成 pdf 文件已经有一段时间了。但是最近我们决定启用这样的加密选项:
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.cidfonts import UnicodeCIDFont
pdfmetrics.registerFont(UnicodeCIDFont("STSong-Light"))
enc = pdfencrypt.StandardEncryption(
"", canPrint=1, canModify=0, canCopy=0, canAnnotate=0
)
self._Report = SimpleDocTemplate(
save_file,
topmargin=0.75*inch, bottommargin=0.75*inch,
rightmargin=0.70*inch, leftmargin=0.70*inch,
showBoundary=0,
author="xxx",
title="xxx",
subject=xxx",
encrypt=enc
)
对于非亚洲语言,加密按预期工作。当我们使用加密的亚洲字体时,adobe reader 无法读取 pdf。例如,对于简体中文,我们会从 Adobe Reader 中收到“找不到字体“STSong-Light”错误。
任何人都知道什么加密正在破坏以使其无法正常工作?