Tag: itext

每行阅读PDF

如何使用iText5 for .NET line by line阅读PDF文件? 我通过互联网搜索,但我只发现每页内容阅读PDF文件。 请看下面的代码。 public string ReadPdfFile(object Filename) { string strText = string.Empty; try { PdfReader reader = new PdfReader((string)Filename); for (int page = 1; page <= reader.NumberOfPages; page++) { ITextExtractionStrategy its = new iTextSharp.text.pdf.parser.SimpleTextExtractionStrategy(); String s = PdfTextExtractor.GetTextFromPage(reader, page, its); s = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(s))); strText = strText + s; […]

在.NET中从PDF中读取文本

我正在尝试使用iTextSharp库将PDF中的文本读入字符串。 iTextSharp.text.pdf.PdfReader pdfReader = new iTextSharp.text.pdf.PdfReader(@”C:\mypdf.pdf”); ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy(); string currentText = PdfTextExtractor.GetTextFromPage(pdfReader, 1, strategy); text = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(currentText))); pdfReader.Close(); Console.WriteLine(text); 这通常可以正常工作,但是每隔几行就会省略空格,这样我的输出就像:“thisismyoutputwithoutwhitespace”。 正确解析的文本似乎与没有正确解析的文本相同; 相同的文本将被不正确地解析,这使我认为它是PDF中的东西。

使用itextsharp在c#中提取阿拉伯语文本

我有这个代码,我用它来获取PDF的文本。 这对于英文PDF非常有用,但是当我试图用阿拉伯语提取文本时,它会向我显示这样的内容。 “)+ n 9 n <+,+)+ $#$ + $ F%9&。<$:;” using (PdfReader reader = new PdfReader(path)) { ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy(); String text = “”; for (int i = 1; i <= reader.NumberOfPages; i++) { text = PdfTextExtractor.GetTextFromPage(reader, i,strategy); } }

如何将书签从xml导入现有的pdf?

我目前正在研究pdf项目(dotnet / c#[ Itextsharp pdf ]),我想从一个pdf导出书签到另一个pdf(两个pdf都有相同的内容,唯一的区别是书签/没有书签,一个是正常的pdf和另一个链接的pdf)。 将书签导出到xml工作正常,但我没有想法将导出的书签(xml)导入到另一个pdf。 任何机构都可以建议解决 在这里,我附上我的代码。 string inputpdf = “D:\\chapter1.pdf”; string outputbookmark=”D:\\chapter1Bookmark.xml”; PdfReader reader = new PdfReader(inputpdf); IList<Dictionary> bookmarks = SimpleBookmark.GetBookmark(reader); using (StreamWriter Sw = new StreamWriter(outputbookmark)) { SimpleBookmark.ExportToXML(bookmarks, Sw,”ISO8859-1″, true); } reader.Close(); 我的xml输出文件是 Introduction Getting Started Printing a test page Accessing the novaPDF Printing Preferences – test the multiline bookmark detection […]

为什么第二行表格不会被写入?

我正在尝试创建没有边框的表格,在我的PDF文档顶部有4列和2行。 问题是第二行不会被写入。 这是我的代码: float[] columnWidths = { 2, 1, 1, 1}; PdfPTable table = new PdfPTable(columnWidths); table.WidthPercentage = 100; if (…) //true { if (…) //true { PdfPCell p = new PdfPCell(new Phrase(“AAA:_______________”,infoFont)); p.BorderWidth = 0; table.AddCell(p); // fixed pos. 1st col,1st row } if (…) //true { PdfPCell p = new PdfPCell(new Phrase(“BBB:_____”, infoFont)); […]

如何在iTextSharp中创建目录

我需要用页码创建内容表,但我不知道如何。 下一格式: heading1 —————-page number subHeading1—————page number subHeading2—————page number heading2—————–page number 我读了几篇文章而且听不懂。特别是,我的意思是这篇文章,我认为“命名目的地”和“GoTo动作”对我有用,但我不知道它在iTextSharp中是怎么做的。 在我的代码中,我有很少的“章节”和“章节”,我想拿它并创建TOC。 我是如何理解的,我需要使用PdfPageEventHelper和OnChapter。

C#iTextSharp通过字节数组合并多个pdf

我是新手使用iTextSharp并且一般使用Pdf文件,但我认为我走在正确的轨道上。 我遍历一个pdf文件列表,将它们转换为字节,并将所有结果字节推送到字节数组中。 从那里我将字节数组传递给concatAndAddContent()以将所有pdf合并为单个大型pdf。 目前我刚刚获得列表中的最后一个pdf(它们似乎被覆盖) public static byte[] concatAndAddContent(List pdfByteContent) { byte[] allBytes; using (MemoryStream ms = new MemoryStream()) { Document doc = new Document(); PdfWriter writer = PdfWriter.GetInstance(doc, ms); doc.SetPageSize(PageSize.LETTER); doc.Open(); PdfContentByte cb = writer.DirectContent; PdfImportedPage page; PdfReader reader; foreach (byte[] p in pdfByteContent) { reader = new PdfReader(p); int pages = reader.NumberOfPages; // loop […]

iTextSharp正在生成一个损坏的PDF

下面的代码片段返回一个损坏的PDF文档,但是如果我返回mergedDocument,它总是返回一个有效的PDF。 mergedDocument基于我使用Word创建的PDF文件,而完成的文档完全以编程方式生成。 代码“有效”,因为它不会引发exception。 为什么iTextSharp会创建损坏的PDF? byte[] completedDocument = null; using (MemoryStream streamCompleted = new MemoryStream()) { using (Document document = new Document()) { PdfCopy copy = new PdfCopy(document, streamCompleted); document.Open(); copy.Open(); foreach (var item in eventItems) { byte[] mergedDocument = null; PdfReader reader = new PdfReader(pdfTemplates[item.DataTokens[NotifyTokenType.OrganisationID]]); using (MemoryStream streamTemplate = new MemoryStream()) { using (PdfStamper stamper […]

ITextSharp:设置表格单元格边框颜色

如何设置表格单元格的边框颜色。 这是我的代码: // create and define table var table = new PdfPTable(8); table.HorizontalAlignment = Element.ALIGN_CENTER; //table.HeaderRows = 1; // the cell object PdfPCell cell; var f = FontFactory.GetFont(“Tahoma”, 11, Font.BOLD); cell = new PdfPCell(new Phrase(“Source Review”, f)); cell.BorderColorLeft = new BaseColor(255, 255, 255); cell.BorderColorRight = new iTextSharp.text.BaseColor(255, 255, 255); table.AddCell(cell); 正如你所看到的,我正在以两种不同的方式设置颜色,两种方式都不起作用。 渲染表格时,边框始终为黑色。 我怎样才能解决这个问题。

iTextSharpexception:找不到PDF标题签名

我正在使用iTextSharp来阅读PDF文档的内容: PdfReader reader = new PdfReader(pdfPath); using (StringWriter output = new StringWriter()) { for (int i = 1; i <= reader.NumberOfPages; i++) output.WriteLine(PdfTextExtractor.GetTextFromPage(reader, i, new SimpleTextExtractionStrategy())); reader.Close(); pdfText = output.ToString(); } 99%的时间它工作得很好。 但是,有一个PDF文件有时会抛出此exception: 找不到PDF标题签名。 StackTrace:在iTextSharp.text.pdf.PRTokeniser.CheckPdfHeader()at iTextSharp.text.pdf.PdfReader.ReadPdf()at iTextSharp.text.pdf.PdfReader..ctor(String filename,Byte [] ownerPassword)at Reader.PDF .DownloadPdf(String url)在C:\ Documents \ Visual Studio中 令人讨厌的是我不能总是重现错误。 有时它有效,有时则不然。 有谁遇到过这个问题?