[英]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;
}
CreatePullSheetPdf和PDFGeneration.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.