在vb.net中使用itext7标记旋转文本



我试图将一些itextsharp代码转换为使用itext7,该代码在旋转90度的pdf的每个页面上盖章文本。不幸的是,我能找到的所有例子都是c#的,虽然我可以使用在线翻译,但我对这个有困难。

下面的代码在给定pdf的每一页的指定位置上标记我的文本:

Shared Sub itext7_stamp_text_on_pdf(mypdfname As String, myfoldername As String)

Dim src As String = myfoldername & "" & mypdfname
Dim dest As String = myfoldername & "Stamped " & mypdfname
Dim pdfDoc As PdfDocument = New PdfDocument(New PdfReader(src), New PdfWriter(dest))
Dim document As Document = New Document(pdfDoc)
Dim canvas As PdfCanvas
Dim n As Integer = pdfDoc.GetNumberOfPages()
For i = 1 To n
Dim page As PdfPage = pdfDoc.GetPage(i)
canvas = New PdfCanvas(page)

With canvas
.SetFontAndSize(PdfFontFactory.CreateFont(StandardFonts.HELVETICA), 12)
.BeginText()
.MoveText(100, 100)
.ShowText("SAMPLE TEXT 100,100")
.EndText()
End With
Next
pdfDoc.Close()
End Sub

…但我没办法把它旋转到90度。

这里有一个例子,如果你使用一个段落:

https://kb.itextpdf.com/home/it7kb/examples/itext-7-building-blocks-chapter-2-rootelement-examples iText7BuildingBlocksChapter2: RootElementexamples-c02e14_showtextaligned

…但我似乎无法将其翻译为vb.net。我可以指定我得到的错误在哪里,但我想我最好先问这个一般性的问题,以防有一种不使用段落的方法。

有人能帮忙吗?

谢谢!

好了,在进一步挖掘之后,这段代码似乎在旋转部分工作得很好:

Dim pdf As New PdfDocument(New PdfReader(inpdf), New PdfWriter(outpdf))  
Dim document As New Document(pdf)
document.ShowTextAligned("This is some test text", 400, 750, TextAlignment.CENTER, VerticalAlignment.MIDDLE, 0.5F * CSng(Math.PI))
document.Close()
End Sub

…但是它被隐藏在现有内容后面,所以我需要一种方法来确保它被设置为over content。

最新更新