私は、ファイル名接頭辞に基づいて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!");
}
}
}
}
}
}
}
返信いただきありがとうございます。私は1つのファイルにすべてをマージすることができました、私の問題は、ファイルのプレフィックスに基づいて複数のファイルを作成しています。私が123.pdf、122.pdf、および222.pdfを持っていて、私の出力フォルダに2つのpdfsで終わりたいのです。 forループに入る前にファイル名(接頭辞)が必要なので、私はそれをマージできます。それは理にかなっていますか? – okmred
123.pdf、122.pdf、および222.pdfという名前のファイルの接頭辞が何であるかが明確でないため、あなたの*固有の*要求は意味をなさない。プレフィックスに基づいてファイルをフィルタリングし、そのプレフィックスに基づいてファイルをマージする*一般的な要求は理にかなっていますが、これはiTextの質問としてタグ付けするべきではありません。プログラミング言語。私はJavaでこれを行う方法を説明することができました。 C#でそれを行う方法を尋ねたいのであれば、C#質問を作成する必要があります(しかし、そのような質問は投票を受け付けないことに注意してください)。 –
私は答えを更新しました。 –