【发布时间】:2015-10-29 16:48:34
【问题描述】:
我尝试使用我在这里找到的代码
http://web.archive.org/web/20111012184438/http://alex.buayacorp.com/merge-pdf-files-with-itext-and-net.html 将 2 个或多个 PDF 文件合并为一个。
我想实现输出作为流返回并保存在客户端。我试图修改代码但没有成功。该代码尝试将输出保存在服务器上,然后导致未经授权的访问异常。
谁有正确的线索?
private void MergePDFs()
{
DataSourceSelectArguments args = new DataSourceSelectArguments();
DataView view = (DataView)SqlDataSource1.Select(args);
DataTable table = view.ToTable();
List<PdfReader> readerList = new List<PdfReader>();
foreach (DataRow myRow in table.Rows)
{
PdfReader pdfReader = new PdfReader(Convert.ToString(myRow[0]));
readerList.Add(pdfReader);
}
Document document = new Document();
PdfCopy copy = new PdfCopy(document, Response.OutputStream);
document.Open();
foreach (PdfReader reader in readerList)
{
for (int i = 1; i <= reader.NumberOfPages; i++)
{
copy.AddPage(copy.GetImportedPage(reader, i));
}
}
document.Close();
Response.AppendHeader("content-disposition", "inline; filename=OutPut.pdf");
Response.ContentType = "application/pdf";
}
【问题讨论】:
-
我尝试修改代码 - 您是否尝试将
FileStream替换为响应流(或MemoryStream,您最终将其内容复制到响应中流)?` 有人问,您找到的代码是一个示例,说明 not 通常如何合并 PDF。使用与PdfCopy配合使用的代码。 -
我尝试了响应流和内存流,但作为一个新手我没有成功。它让我对你所说的代码感到困惑,而不是用于合并 PDF。似乎正是为了这个目的!?
-
似乎正是为了这个目的!? - 是的,但它是以错误的方式完成的。详情请查看this answer。
标签: c# .net pdf itextsharp