Ich bin dabei, einen Code zu erstellen, der PDFs basierend auf dem Dateinamenspräfix zusammenführen wird. Ich habe derzeit den folgenden Code, der den Dateinamen ergreift und nicht zusammenführt, sondern überschreibt. Ich glaube, mein Problem ist das FileStream-Placement, aber wenn ich es aus dem aktuellen Speicherort verschiebe, kann ich den Dateinamen nicht finden. Irgendwelche Vorschläge? Vielen Dank.iText FileStream überschreibt
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!");
}
}
}
}
}
}
}
Vielen Dank für die Antwort. Ich konnte alle in eine einzelne Datei zusammenführen, mein Problem besteht darin, mehrere Dateien basierend auf dem Dateipräfix zu erstellen. Also wenn ich 123.pdf, 122.pdf und 222.pdf habe und ich möchte 2 pdfs in meinem Ausgabeordner haben. Ich brauche den Dateinamen (Präfix), bevor ich in die for-Schleife komme, damit ich darauf fusionieren kann. Ist das sinnvoll? – okmred
Ihre * spezifische * Anfrage macht keinen Sinn, weil nicht klar ist, welches Präfix die Dateien 123.pdf, 122.pdf und 222.pdf haben würden. Die * general * -Anforderung, Dateien basierend auf einem Präfix zu filtern und Dateien basierend auf diesem Präfix zusammenzuführen, ist sinnvoll, aber das ist eine Frage, die nicht als iText-Frage markiert werden sollte, da es in jedem Fall ein Kinderspiel ist Programmiersprache. Ich könnte erklären, wie man das in Java macht; Sie sollten eine C# -Frage erstellen, wenn Sie wissen möchten, wie Sie das in C# tun können (aber beachten Sie, dass eine solche Frage Down-Stimmen erhalten kann). –
Ich habe die Antwort aktualisiert. –