每次迭代或遍历文档列表时如何创建新的PDF文件?

问题描述 投票:0回答:1

我对创建PDF并不陌生,我正在按照现有代码创建pdf文件。我正在通过创建新的pdf修改现有代码。

从文档列表中,我遍历每个文档并为其赋予新的名称。

每次迭代或遍历文档列表时如何创建新的PDF文件?

resultCollection-获取文档列表

currentCompanySegmentsSetings-具有详细信息的对象

creatingTableOfContent-表内容

我尝试过的

foreach (var item in resultCollection)
                {
                    var guidID = Guid.NewGuid().ToString();
                    var newFileName = $"{currentCompanySegmentsSetings.FriendlySegmentName}-{Translator.TranslateDocumentType("invoice", currentCompanySegmentsSetings).ToLower()}-{guidID}-{message.documents.First().AccountNumber}.pdf";
                    outputFileNames.Add(newFileName);

                    //Create PDF's and send to the location
                    System.IO.Directory.CreateDirectory(currentOutputDirectory);
                    var firstDocsMetadata = resultCollection.First().MetaData;
                    string generatedPDFLocation = System.IO.Path.Combine(currentOutputDirectory, newFileName);

                    var file = DocumentsToPDFDocs(financialDocument);
                    PdfDocument pdfDoc = new PdfDocument(new PdfWriter(generatedPDFLocation, CreateEncryptionWriteProperties()));
                    Document doc = new Document(pdfDoc);

                    //Bookmarks 
                    pdfDoc.GetCatalog().SetPageMode(PdfName.UseOutlines);
                    doc.SetMargins(22f, 22f, 22f, 22f);
                    doc.SetFontSize(8);
                    doc.SetFontColor(Color.BLACK);

                    //1.Create table of contents 
                    var tableOfContentTopMargin = 176;
                    Table tableOfContent = creatingTableOfContent(file, currentCompanySegmentsSetings);
                    tableOfContent.SetDestination("p" + "index");
                    doc.Add(tableOfContent.SetMarginTop(tableOfContentTopMargin));

                    //How do i continue from here to create pdf to the directory

                    message.FinancialDocumentAttachments.Add(new MessageQueueAttachment()
                    {
                        Location = documentPath,
                        IsNew = true,
                        Id = Guid.NewGuid()
                    });
                }
c# pdf itext
1个回答
0
投票
var firstDocsMetadata = resultCollection.First().MetaData;

何时应该:

var firstDocsMetadata = item.MetaData;

因为要迭代resultCollection,并且item是在每个循环中获得的元素。

© www.soinside.com 2019 - 2024. All rights reserved.