繁体   English   中英

如何使用itextsharp在一个pdf中打印多个文档

[英]How to print multiple documents in one pdf using itextsharp

我想在一个pdf文件中打印多个文档。

 private bool CreateBatchDetails(string path, string PDFFilename, List<BatchDetails> _bd)
{
    bool chk = false;
    DataSet ds = new DataSet();
    try
    {
        foreach (var item in _bd)
        {
            var _IsSpecialPullID = (...................
                                    select new
                                    {
                                        m.PullId,
                                        m.RentalOrderId
                                    }).FirstOrDefault();

            if ((_IsSpecialPullID.RentalOrderId == null) || (_IsSpecialPullID.RentalOrderId.Value.ToString() == string.Empty))
            {

                ds = SqlHelper.ExecuteDataset(ConnectionString, "Stored Procedure1", _IsSpecialPullID.PullId);
                if (ds.Tables[0].Rows.Count > 0)
                {
                    chk = CreatePullSheetPdf(PDFFilename, ConfigurationManager.AppSettings["SitePath"].ToString() + @"images\nemc-pdf-logo.gif", ds);
                }
            }
            else
            {
                ds = SqlHelper.ExecuteDataset(ConnectionString, "Stored Procedure2", _IsSpecialPullID.PullId);
                if (ds.Tables[0].Rows.Count > 0)
                {
                    tbl ro = XYZDb.tbl.Where(t => t.OrderId == _IsSpecialPullID.RentalOrderId).FirstOrDefault();
                    chk = PDFGeneration.CreatePullSheetPdfSpecialOrder(PDFFilename, ConfigurationManager.AppSettings["SitePath"].ToString() + @"images\nemc-pdf-logo.gif", ds, RentalOrder, Server.HtmlDecode(ds.Tables[0].Rows[0]["Comments"].ToString()));
                }
            }
        }
        return chk;
    }
    catch (Exception ex)
    {
        return chk = false;
    }

CreatePullSheetPdfPDFGeneration.CreatePullSheetPdfSpecialOrder都在创建itextsharp文档,并返回布尔值。

我只想将所有文档打入一个文件中。 我该如何实现?

调用CreateBatchDetails的主程序如下:

 PdfCreated = CreateBatchDetails(path, PDFFilename, _bd);
     try
      {
        if (PdfCreated)
        {
            try
            {

                FileInfo file = new FileInfo(PDFFilename);
                file.AppendText();

              if (file.Exists)
                {

                    Response.Cache.SetCacheability(HttpCacheability.NoCache);
                    Response.Cache.SetExpires(DateTime.Now);
                    Response.Cache.SetNoServerCaching();
                    Response.Cache.SetNoStore();

                    HttpContext.Current.Response.ContentType = "application/pdf";
                    HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=" + file.Name);
                    HttpContext.Current.Response.TransmitFile(PDFFilename);


                }
                string filename = PDFFilename;
                    return true;
            }
            catch (Exception ex)
            {
                HttpContext.Current.Response.TransmitFile(PDFFilename);
                if (File.Exists(PDFFilename) == true)
                {
                    File.Delete(PDFFilename);
                }

                LogGeneration.GenerateLog(LogType.UserErrorLog, Common.GetIpAddress(), string.Empty,
                    "nemcadmin/App_code/PDFGeneration.cs[Method:private public static bool CreatePackaginglistPdf(string RentalContractId, int pastDue, out string message, out string PDFFilename) - Cannot generate pdf file]:- \n"
                    + ex.Message.ToString() + " " + ex.StackTrace, "error", SeverityLevel.Critical);
                message = "Cannot generate pdf file";
                 return false;
            }

任何帮助将不胜感激....感谢任何先进...欢迎所有疑问

请帮忙

创建一个新的PDF文件。

Document newPDF = new Document();
PdfCopy mergedPDFs = new PdfCopy(newPDF, new FileStream(pdfPath, FileMode.Create));
document.Open();

循环浏览要合并的PDF并阅读它们。

foreach (string pdfFile in ListOfPDFsToMergePaths)
{
    PdfReader reader = new PdfReader(pdfFile);
    for (int i = 0; i < reader.NumberOfPages; i++)
    {
        mergedPDFs.AddPage(mergedPDFs.GetImportedPage(reader, i));
    }
}

mergedPDFs.Close();
newPDF.Close();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM