Skip to content

Conversation

@Ian-Jhon
Copy link

  1. 改进self.OP(针对页面),从reportlab.lib.units 导入长度单位毫米,并将self.OP定义为1mm,是页面尺寸符合实际大小。
  2. 改进draw_chars函数(针对印章): 对有CTM的字符位置,改用reportlab中canvas.transform方法对pdf页面先进行变换再写入字符,使印章文字位置更准确。
  3. 改进draw_line函数(针对印章): 对彩色线条,通过提取StrokeColor得到正确的颜色。
  4. 改进draw_pdf函数(针对普通发票印章): 绘制顺序由文本(draw_chars)为先,调整为线条(draw_line)为先,这样可以使普通发票的线条在下面,印章文字保持在上面,对于火车票,印章文字和标题文字重叠,目前不起作用。
  5. 改进SignatureFileParser函数(针对火车票): 将StampAnnot_res_key = "ofd:StampAnnot"设置为默认传入参数,但对于签章标签名不为"ofd:StampAnnot"的情形,如火车票的为'ofd:Signature',则从signature_xml_obj.keys()获取。

1, 改进self.OP(针对页面),从reportlab.lib.units 导入长度单位毫米,并将self.OP定义为1mm,是页面尺寸符合实际大小。
2, 改进draw_chars函数(针对印章): 对有CTM的字符位置,改用reportlab中canvas.transform方法对pdf页面先进行变换再写入字符,使印章文字位置更准确。
3, 改进draw_line函数(针对印章): 对彩色线条,通过提取StrokeColor得到正确的颜色。
4, 改进draw_pdf函数(针对印章): 绘制顺序由文本(draw_chars)为先调整为线条(draw_line)为先,这样可以使印章线条在最下面但印章始终文字保持在最上面。
改进SignatureFileParser函数(针对火车票): 将StampAnnot_res_key设置为传入参数,且默认为 "ofd:StampAnnot"
改进Signature解析流程(针对火车票): 先用StampAnnot_res_key = "ofd:StampAnnot"运行SignatureFileParser函数,签章信息的标签名不为"ofd:StampAnnot",如火车票的为'ofd:Signature',则从signature_xml_obj.keys()获取第一个key为sign_key传入SignatureFileParser。
升级draw_annotation,Annotation.xml中除了ImgageObject还有TextObject (有些发票的annotation包含了“下载次数:”),改进以后,只要ImgageObject对应的"ResourceID"存在就会将其添加到pdf中,而对于没有"ResourceID"的TextObject,即使解析为一个ImgageObject,也不会添加图片到pdf中。
@Ian-Jhon
Copy link
Author

升级draw_annotation,Annotation.xml中除了ImgageObject还有TextObject (有些发票的annotation包含了“下载次数:”),改进以后,只要ImgageObject对应的"ResourceID"存在就会将其添加到pdf中,而对于没有"ResourceID"的TextObject,即使解析为一个ImgageObject,也不会添加图片到pdf中。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant