我这样做了:
Imports iTextSharp.text.rtf
然后这个:
Dim grx As graphic = New graphic
在第一个“图形”上我得到了“预期的类型”
graphic是iTextSharp.text.rtf
的成员这是周围的代码:
Public Sub New1()
Console.WriteLine("Chapter 4 example 4: Simple Graphic")
Dim document As Document = New Document
Try
PdfWriter.GetInstance(document, New FileStream("Chap0404.pdf", FileMode.Create))
document.Open()
Dim grx As graphic = New graphic
grx.Rectangle(100, 700, 100, 100)
grx.MoveTo(100, 700)
grx.LineTo(200, 800)
grx.Stroke()
document.Add(grx)
Catch de As DocumentException
Console.Error.WriteLine(de.Message)
Catch ioe As IOException
Console.Error.WriteLine(ioe.Message)
End Try
document.Close()
End Sub
以下是整个教程:(抱歉,这不是教程,但这就是他们所说的)
Imports System
Imports System.IO
Imports iTextSharp.text
Imports iTextSharp.text.pdf
Namespace iTextSharp.tutorial.Chap04
Public Class Chap0404
Public Sub New()
Console.WriteLine("Chapter 4 example 4: Simple Graphic")
Dim document As Document = New Document
Try
PdfWriter.GetInstance(document, New FileStream("Chap0404.pdf", FileMode.Create))
document.Open
Dim grx As Graphic = New Graphic
grx.Rectangle(100, 700, 100, 100)
grx.MoveTo(100, 700)
grx.LineTo(200, 800)
grx.Stroke
document.Add(grx)
Catch de As DocumentException
Console.Error.WriteLine(de.Message)
Catch ioe As IOException
Console.Error.WriteLine(ioe.Message)
End Try
document.Close
End Sub
End Class
结束命名空间
答案 0 :(得分:3)
在玩了一段时间后,我认为结论是你所遵循的教程适用于过时的iText / iTextSharp版本。
他们的sourceforge网站从2006年1月开始链接到匹配的example,您对VB.NET的翻译看起来很准确 - 问题是当前版本的iTextSharp不包含{ {1}}类型,经过一些搜索后,似乎只是重命名 - 更有可能是完整图形API发生了重大变化。
sourceforge页面有一个免责声明(最后一行),链接的示例可能不再起作用,
请注意,某些示例不适用于最新版本的iTextSharp。
根据给定的证据和Reflector的使用,我发现预期的Graphic
方法仅存在于Graphic.Stroke()
类中;但是PdfContentByte
需要一个实现Document.Add()
的类,IElement
不会这样做。
这个变化是我可以使 关闭 进行编译的最小变化,但它会显着改变代码的意图,并且可能无法按预期运行。这是我的更新版本供您参考:
PdfContentByte