使用 IText 从流中读取 Aspose pdf
Read an Aspose pdf from stream with IText
我需要使用 ITextSharp 阅读使用 Aspose 创建的 PDF。
这是我的代码:
// instantiate Pdf object
Aspose.Pdf.Generator.Pdf pdf = new Aspose.Pdf.Generator.Pdf();
// specify the Character encoding for for HTML file
pdf.HtmlInfo.CharSet = "UTF-8";
pdf.HtmlInfo.CharsetApplyingLevelOfForce = Aspose.Pdf.Generator.HtmlInfo.CharsetApplyingForceLevel.UseWhenImpossibleDetectFromContent;
// bind the source HTML
pdf.BindHTML(htmlString);
MemoryStream stream = new MemoryStream();
pdf.Save(stream);
Form form = new Form();
form.BindPdf(stream);
var inStream = new MemoryStream(Input.TemplateFile);
var pdfConcat = new PdfConcatenate(inStream);
var pdfReader = new PdfReader(stream);
pdfReader.SelectPages(new List<int>() { 0, 1 });
pdfConcat.AddPages(pdfReader);
pdfReader.Close();
pdfConcat.Close();
调试时,我在 var pdfReader = new PdfReader(stream);
行收到以下错误
PDF header signature not found
我想做的事情:
- 从 HTML 字符串创建一个 PDF 页面
- 将其附加到现有 PDF
知道如何解决这个问题吗?
你做一个
form.BindPdf(stream);
在将流提供给 iTextSharp 之前
var pdfReader = new PdfReader(stream);
前一个操作已经读取了流,PdfReader
没有任何内容可读。
可能是
stream.Position = 0;
就在 PdfReader
初始化之前可以正确倒回流。
如果这不起作用(例如,如果 form.BindPdf
不仅读取流而且还对其进行操作),检索流的 byte[]
副本
byte[] bytes = stream.ToArray();
before BindPdf
调用并初始化 PdfReader
:
var pdfReader = new PdfReader(bytes);
我需要使用 ITextSharp 阅读使用 Aspose 创建的 PDF。 这是我的代码:
// instantiate Pdf object
Aspose.Pdf.Generator.Pdf pdf = new Aspose.Pdf.Generator.Pdf();
// specify the Character encoding for for HTML file
pdf.HtmlInfo.CharSet = "UTF-8";
pdf.HtmlInfo.CharsetApplyingLevelOfForce = Aspose.Pdf.Generator.HtmlInfo.CharsetApplyingForceLevel.UseWhenImpossibleDetectFromContent;
// bind the source HTML
pdf.BindHTML(htmlString);
MemoryStream stream = new MemoryStream();
pdf.Save(stream);
Form form = new Form();
form.BindPdf(stream);
var inStream = new MemoryStream(Input.TemplateFile);
var pdfConcat = new PdfConcatenate(inStream);
var pdfReader = new PdfReader(stream);
pdfReader.SelectPages(new List<int>() { 0, 1 });
pdfConcat.AddPages(pdfReader);
pdfReader.Close();
pdfConcat.Close();
调试时,我在 var pdfReader = new PdfReader(stream);
PDF header signature not found
我想做的事情: - 从 HTML 字符串创建一个 PDF 页面 - 将其附加到现有 PDF
知道如何解决这个问题吗?
你做一个
form.BindPdf(stream);
在将流提供给 iTextSharp 之前
var pdfReader = new PdfReader(stream);
前一个操作已经读取了流,PdfReader
没有任何内容可读。
可能是
stream.Position = 0;
就在 PdfReader
初始化之前可以正确倒回流。
如果这不起作用(例如,如果 form.BindPdf
不仅读取流而且还对其进行操作),检索流的 byte[]
副本
byte[] bytes = stream.ToArray();
before BindPdf
调用并初始化 PdfReader
:
var pdfReader = new PdfReader(bytes);