我有一个现有的过程,它使用aspose.pdf.generator在内存中构建各种PDF文档。然后,该过程将PDF文件连接起来,并在最后将一个PDF返回给用户。
我现在需要将现有的Word文档插入到连接过程中。我可以将单词docs作为Aspose.Words文档导入内存。如何在不同位置将Aspose.Words文档插入到Aspose.PDF.Generator文档中?如果我能够将每个Aspose.Words文档转换为一个Aspose.PDF.Generator文档,我就可以将该方法干净地插入到我的流程中。
此对象var msDoc = new Aspose.Words.Document(ms);需要插入到类型为Aspose.PDF.Generatorr.Pdf的tdocs.pdf属性中。
PdfFileEditor pdfEditor = new PdfFileEditor();
MemoryStream outStream = new MemoryStream();
MemoryStream[] streamArray = new MemoryStream[tdocs.Count];
int i = 0;
foreach (var tdoc in tdocs)
{
MemoryStream inputStream1 = new MemoryStream();
tdoc.Pdf.Save(inputStream1);
streamArray[i] = inputStream1;
i++;
}
pdfEditor.Concatenate(streamArray, outStream);
using (FileStream file = new FileStream(filePath, FileMode.Create, System.IO.FileAccess.Write))
{
byte[] bytes = new byte[outStream.Length];
outStream.Read(bytes, 0, (int)outStream.Length);
file.Write(bytes, 0, bytes.Length);
outStream.Close();
}
return fileName;发布于 2015-01-11 05:53:04
您可以使用Aspose.Words.Save(stream,Aspose.Words.SaveFormat.Pdf)方法将Word文档保存到PDF (流)中。并在pdfEditor.Concatenate()中使用此流。
我假设tdoc是您的类,包含有关pdf文档的信息。您可以通过添加多一个布尔成员(IsPdf)来修改它以处理PDF和Word文档。
foreach (var tdoc in tdocs)
{
if (tdoc.IdPdf)
{
MemoryStream inputStream1 = new MemoryStream();
tdoc.Pdf.Save(inputStream1);
streamArray[i] = inputStream1;
}
else
{
// If it is a Word document, use Aspose.Words.Document.Save()
Aspose.Words.Document wordDoc = new Aspose.Words.Document(tdoc.wordFilePath);
streamArray[i] = new MemoryStream();
wordDoc.Save(streamArray[i], Aspose.Words.SaveFormat.Pdf);
}
i++;
}https://stackoverflow.com/questions/27878489
复制相似问题