Подпись заголовка PDF не найдена - действительно запутался в этом
Итак, я попробовал два разных фрагмента кода для преобразования документа в pdf, и я получаю ту же ошибку `подпись заголовка PDF не найдена`, это мой код, который у меня есть:
private void Word2PDF() { //Create a new Microsoft Word application object Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application(); //Adding dummy value because c# doesn't have optional arguments object oMissing = System.Reflection.Missing.Value; //Getting list of word files in specified directory DirectoryInfo dirInfo = new DirectoryInfo("C:\\TestFilestore\\"); FileInfo[] wordFiles = dirInfo.GetFiles("*.doc"); word.Visible = false; word.ScreenUpdating = false; foreach (FileInfo wordFile in wordFiles) { //Cast as object for word open method Object filename = (Object)wordFile.FullName; Microsoft.Office.Interop.Word.Document doc = word.Documents.Open(ref filename, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing); doc.Activate(); object outputFileName = wordFile.FullName.Replace(".doc", ".pdf"); object fileFormat = WdSaveFormat.wdFormatPDF; //Save document into pdf format doc.SaveAs(ref outputFileName, ref fileFormat, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing); //close the word document, but leave the word application open. //doc has to be cast to type_document so that it will find the correct close method. object saveChanges = WdSaveOptions.wdDoNotSaveChanges; ((_Document)doc).Close(ref saveChanges, ref oMissing, ref oMissing); doc = null; } //word has to be case to type_application so that it will find the correct quit method. ((_Application)word).Quit(ref oMissing, ref oMissing, ref oMissing); word = null; }
И вот тут она ломается:
static public void CopyPages(string source, string dest) { var reader = new iTextSharp.text.pdf.PdfReader(source); using (FileStream fs = new FileStream(dest, FileMode.Create, FileAccess.Write, FileShare.None)) { iTextSharp.text.Document doc = new iTextSharp.text.Document(reader.GetPageSizeWithRotation(1)); { //Use a PdfCopy to duplicate each page iTextSharp.text.pdf.PdfCopy copy = new iTextSharp.text.pdf.PdfCopy(doc, fs); { doc.Open(); copy.SetLinearPageMode(); for (int i = 1; i <= reader.NumberOfPages; i++) { copy.AddPage(copy.GetImportedPage(reader, i)); } //Reorder pages //copy.ReorderPages(new int[] { 2, 1 }); doc.Close(); } } } }
Это та линия, которую он ломает:
var reader = new iTextSharp.text.pdf.PdfReader(source);
Любая помощь будет велика... мольбы :) Спасибо!
syed2109
см. https://stackoverflow.com/a/12363773/2089963