从认证的pdf中提取页面

时间:2018-01-10 07:44:13

标签: c# pdf certificate itext

我正在尝试使用带有iTextSharp的c#中的证书从PDF中提取页面。我没有密码的重要信息。我尝试使用PDFCopy,但在尝试提取页面时抛出异常(下面的源代码)。

异常消息是:PdfReader未使用所有者密码打开。它会导致此部分代码:PdfReader.unethicalreading = true;

实际状态:我的解决方案提取没有证书的PDF页面。

我想要的状态:解决方案能够使用带证书的PDF。

我的回答是:是否可以在没有密码的情况下从经过认证的pdf中提取页面,怎么做?

解决方案:将PdfReader的属性(不道德的)设置为true 忽略密码但使证书无效。 public void ExtractPdfPages(string sourcePdfPath, string outputPdfPath, int numberOfPage) { PdfReader reader = null; Document sourceDocument = null; PdfCopy pdfCopyProvider = null; PdfImportedPage importedPage = null; int pageCount; try { using (reader = new PdfReader(sourcePdfPath)) { pageCount = reader.NumberOfPages; sourceDocument = new Document(reader.GetPageSizeWithRotation(1)); pdfCopyProvider = new PdfCopy(sourceDocument, new System.IO.FileStream(outputPdfPath, System.IO.FileMode.Create)); sourceDocument.Open(); int actualPageCount = pageCount > numberOfPage ? numberOfPage : pageCount; for (int i = 1; i <= actualPageCount; i++) { importedPage = pdfCopyProvider.GetImportedPage(reader, i); pdfCopyProvider.AddPage(importedPage); } sourceDocument.Close(); } } catch (Exception ex) { throw new Exception(ex.Message); } }

实际代码:

{{1}}

0 个答案:

没有答案