如何使用itext pdf在pdf画布上绘制路径?

时间:2014-06-09 07:15:39

标签: android pdf canvas drawing itextpdf

我正在使用itextpdf实现pdf编辑应用程序。我在pdf中添加了一个文本,我使用canvas.drawPath()方法在android系统画布上绘制一个名称。就像我想在pdfCanvas上绘制名字一样可能吗?。

我尝试了一些在pdf画布上绘制曲线和矩形的示例,但没有提供精确的解决方案。为了在pdf画布上绘制曲线,我正在使用" PdfContentByte"。在这个类中,我发现了一些方法

curveFromTo(X1,Y1,X3,Y3) curveTo(X2,Y2,X3,Y3) curveTo(X1,Y1,X2,Y2,X3,Y3)

在这种方法中我保存它后使用curveFromTo()给镜像路径而不是原始路径。

意味着如果我在Android画布上绘制PDF,它就像镜像一样旋转。

是否可以在PDF文件上绘制路径。是否有任何方法,如canvas.drawPAth();

1 个答案:

答案 0 :(得分:1)

首先要做的事情是:iText中没有canvas.drawPath()方法。

现在问题的其余部分:有一些方法可以使用低级功能和方法在PDF页面上绘制文本,以使用高级功能绘制文本。

在最低级别,可以使用一系列beginText()setFontAndSize()setTextMatrix()showText()endText()方法。这称为“文本对象”。

在更高级别,可以使用单个setTextMatrix()方法替换showText()showTextAligned()

在更高级别,可以使用单个ColumnText.showTextAligned()方法替换整个序列。

在最高级别,可以创建ColumnText对象,为列定义Rectangle,添加ParagraphPdfPTable,...等对象列并执行go()方法。

但是:当你说:

时,你犯了一个重大错误
  

保存后,它给镜像路径不是原始路径。

     

意味着如果我在Android画布上绘制PDF,它就像镜像一样旋转。

除了糟糕的英语,你忽略了ISO-32000-1。通过阅读此ISO标准,您将发现您对PDF中的坐标系做出了错误的假设。在新创建的PDF中,坐标的原点可以在左下角找到。 X访问扩展到右侧。 Y访问向上扩展。

Android使用不同的坐标系。在将Android坐标转换为PDF坐标时,您需要确保转换坐标。