*本文适合有pdf基础知识的人观看。
前言
在podofo中,我们可以使用PdfPainter::SetTransformationMatrix()来设置转换矩阵。
对于什么是转换矩阵,可以参看PDF坐标系统,PDF格式分析(五十六)Coordinate Systems 坐标系。
但是在实践操作中,我们发现某些pdf的转换矩阵不是默认的{1,0,0,1,0,0},这就导致在添加水印时,水印发向是错的。
比如给文章(背影.pdf,可在 https://download.csdn.net/download/sspdfn/12204866 中下载) 添加30度倾斜的水印时,发现文字颠倒了:
(水印www.baidu.com,上下颠倒)
这是因为背影.pdf的页面转换矩阵设置的是{1,0,0,-1,0,841.9}。
今天我们就来讲讲解决这个问题。
一、如何查看页面的转换矩阵
我使用的pdf类库是podofo。关于如何编译podofo,请参看:PODOFO编译之2——依赖项编译及podofo-0.9.2编译。
编译好podofo后,在工程下有一个podofouncompress的子项目。顾名思义,这是将pdf解压的工具。
为什么pdf要解压呢?首先我们知道pdf(译名是兼容文档格式)是一个文本格式。右键以文本格式打开beiying.pdf,我们看到的是这样: