Itextsharp ShowTextAligned未准确输出文本
我正在使用下面的代码片段。我希望文本之间的距离正好是一英寸,但事实并非如此。我做错了什么Itextsharp ShowTextAligned未准确输出文本,itextsharp,Itextsharp,我正在使用下面的代码片段。我希望文本之间的距离正好是一英寸,但事实并非如此。我做错了什么 Dim outputFile As String = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "test.pdf") Using fs As New FileStream(outputFile, FileMode.Create, FileAccess.Write, FileShare.Non
Dim outputFile As String = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "test.pdf")
Using fs As New FileStream(outputFile, FileMode.Create, FileAccess.Write, FileShare.None)
Using doc As New Document(PageSize.LETTER)
Using writer As PdfWriter = PdfWriter.GetInstance(doc, fs)
doc.Open()
'This creates two lines of text using the iTextSharp abstractions
' doc.Add(New Paragraph("This is Paragraph 1"))
' doc.Add(New Paragraph("This is Paragraph 2"))
'This does the same as above but line spacing needs to be calculated manually
Dim cb As PdfContentByte = writer.DirectContent
cb.SaveState()
cb.SetColorFill(BaseColor.BLACK)
cb.SetFontAndSize(BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED), 12.0F)
cb.BeginText()
' rlm - dimensions are from the bottom
cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, "This is cb1", 20, 20, 0)
cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, "This is cb2", 20, 92, 0)
cb.EndText()
cb.RestoreState()
doc.Close()
End Using
End Using
End Using
我不确定你们是如何测量的,但我只是以实际分辨率打印出你们的样品,并将其与尺子进行比较,它们的基线确实相距一英寸 如果你在电脑屏幕上测量,你会遇到问题。基于Windows的计算机通常(尽管这正在改变)以96 DPI的速度运行,因此,如果您在计算机屏幕上以100%的速度查看测试并尝试测量它,您将获得大约4/3英寸(96/72)。所谓的“hi-DPI”设置和设备越来越普遍,因此无法保证屏幕的实际测量结果