Dobrý den, za předpokladu, že je na cílovém počítači nainstalován MS Word, lze poměrně jednoduše spojit dokumenty do jednoho "wordovského" dokumentu a výsledný dokument uložit do formátu PDF.
Microsoft.Office.Interop.Word.Application app = new Microsoft.Office.Interop.Word.Application();
//zobrazí okno MS Word, true je nastaveno pouze pro testovací účely
app.Visible = true;
//vytvoří nový prázdný dokument
var doc = app.Documents.Add();
//vloží první soubor
app.Selection.InsertFile(@"c:\test\a.docx");
//oddělovač mezi dokumenty (konec oddílu)
var separator = Microsoft.Office.Interop.Word.WdBreakType.wdSectionBreakNextPage;
app.Selection.InsertBreak(separator);
//vloží další soubor
app.Selection.InsertFile(@"c:\test\b.docx");
//uloží do pdf
var format = Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatPDF;
app.ActiveDocument.SaveAs(@"c:\test\output.pdf", format);
doc.Close(false);
app = null;
Je nutné přidat referenci na Microsoft.Office.Interop.Word. Toto řešení však není úplně dokonalé. Např. pokud bude v jednotlivých dokumentech různý formát pro nadpisy (Nadpis 1, Nadpis 2...), formát se ve výsledném dokumentu sjednotí. Podobných problémů bude určitě více (rozdílná velkost stránek, rozdílné okraje stránek...) Alternativně by se dalo uložit jednotlivé dokumenty do PDF (samostatně, každý dokument do jednoho PDF) a následně je (pomocí další knihovny) sloučit do jednoho PDF. Vhodná knihovna by se asi dala najít třeba na codeplex.com.
|