0
我正在彙集一些代碼,將基於文件名前綴合並pdf的過程。我目前有下面的代碼抓取文件名,不合並,但覆蓋。我相信我的問題是FileStream的位置,但如果我將它移出當前位置,我無法獲取文件名。有什麼建議麼?謝謝。iText FileStream overwirtes
static void CreateMergedPDFs()
{
string srcDir = "C:/PDFin/";
string resultPDF = "C:/PDFout/";
{
var files = System.IO.Directory.GetFiles(srcDir);
string prevFileName = null;
int i = 1;
foreach (string file in files)
{
string filename = Left(Path.GetFileName(file), 8);
using (FileStream stream = new FileStream(resultPDF + filename + ".pdf", FileMode.Create))
{
if (prevFileName == null || filename == prevFileName)
{
Document pdfDoc = new Document(PageSize.A4);
PdfCopy pdf = new PdfCopy(pdfDoc, stream);
pdfDoc.Open();
{
pdf.AddDocument(new PdfReader(file));
i++;
}
if (pdfDoc != null)
pdfDoc.Close();
Console.WriteLine("Merges done!");
}
}
}
}
}
}
}
謝謝你的回覆。我已經能夠將所有文件合併到一個文件中,我的問題是基於文件前綴創建多個文件。所以如果我有123.pdf,122.pdf和222.pdf,並且我想在輸出文件夾中包含2個pdf文件。在進入for循環之前,我需要文件名(前綴),以便我可以合併。那有意義嗎? – okmred
您的*特定*請求沒有意義,因爲不清楚名爲123.pdf,122.pdf和222.pdf的文件的前綴是什麼。基於前綴過濾文件的* general *請求以及基於該前綴合並文件是有意義的,但這是一個不應該被標記爲iText問題的問題,因爲在任何情況下實現這一點都是不容易的編程語言。我可以解釋如何在Java中執行此操作;如果你想問如何在C#中做這件事,你應該創建一個C#問題(但要注意這樣的問題可能會得到反對票)。 –
我已經更新了答案。 –