谁能告诉我如何将PdfReader
对象转换为PdfDocument
?将pdfreader转换为pdfdocument
我读过一个磁盘文件并转换为内存流,但我需要它作为我的C#程序中其他方法的PdfDocument
。
我正在将应用程序转换为使用iTextSharp
而不是PdfSharp
。
MemoryStream pdfstream = new MemoryStream();
/* Convert the attachment to an byte array */
byte[] pdfarray = (byte[])dr["Data"];
/* Write the attachment into the memory */
pdfstream.Write(pdfarray, 0, pdfarray.Length);
/* Set the memorystream to the beginning */
pdfstream.Seek(0, System.IO.SeekOrigin.Begin);
/* Open the pdf document */
PdfSharp.Pdf.PdfDocument document = PdfSharp.Pdf.IO.PdfReader.Open(pdfstream, PdfDocumentOpenMode.Modify);
//iTextSharp.text.Document doc1 = iTextSharp.text.pdf.PdfReader.GetStreamBytes(
//ITS.pdf.PdfReader rdr = ITS.pdf.PdfReader(
string filename = DateTime.Now.Ticks.ToString() + "_" + dr["AttachmentName"].ToString();
string path = Path.Combine(FolderName, filename);
document.Save(path);
我不确定它是否仍然如此,但是这里的评论 - http://stackoverflow.com/a/2554230/855363 - 表明这是不可能的。 – Snixtor 2013-02-12 10:27:14
@Snixtor注释只是部分正确nowerdays --- iText now ** does **包含从现有的PDF中提取文本和图像的框架,但结果是**不是**准备好的“PdfDocument”,而是一个序列字母组和位图数据的位图,没有段落等信息了。因此,对于user1423958,结果是相同的:这是不可能的(除非他花费相当长的时间来开发启发式方法,从文本和图像位构建这些缺失的结构)。 – mkl 2013-02-12 11:00:08
@ user1423958您可能应该说明您需要满足哪些要求。虽然您无法从某个“PdfReader”创建“PdfDocument”,但实际上您可能只需要一个“PdfStamper”或“PdfCopy”实例。 – mkl 2013-02-12 11:04:26