質問: windows 10に付属のmicrosoft print to pdfプリンターを使用して、c#でファイル名を要求せずにプログラムでpdfファイルに印刷する方法 microsoft windows 10には、何かをpdfファイルに印刷できるmicrosoft print to pdfプリンターが付属しています。ダウンロードするファイル名の入力を求められます。これをc#からプログラムで制御して、pdfファイル名を要求せずに、提供するフォルダーの特定のファイル名に保存するにはどうすればよいですか?これは、多くのドキュメントまたは他の種類のファイルをプログラムでpdfに印刷するバッチ処理用です。
回答: 次の例のように、printoutメソッドを使用し、4番目の出力ファイル名パラメーターを指定することにより、windows 10 pdfプリンターに印刷できます。/// <summary> /// convert a file to pdf using office _document object /// </summary> /// <param name="inputfile">full path and filename with extension of the file you want to convert from</param> /// <returns></returns> public void printfile(string inputfile) { // convert input filename to new pdf name object outputfilename = path.combine( path.getdirectoryname(inputfile), path.getfilenamewithoutextension(inputfile)+".pdf" ); // set an object so there is less typing for values not needed object missing = system.reflection.missing.value; // `doc` is of type `_document` doc.printout( ref missing, // background ref missing, // append ref missing, // range outputfilename, // outputfilename ref missing, // from ref missing, // to ref missing, // item ref missing, // copies ref missing, // pages ref missing, // pagetype ref missing, // printtofile ref missing, // collate ref missing, // activeprintermacgx ref missing, // manualduplexprint ref missing, // printzoomcolumn ref missing, // printzoomrow ref missing, // printzoompaperwidth ref missing, // printzoompaperheight ); } outputfileは、変換する入力ドキュメントのフルパス文字列であり、docは通常のドキュメントオブジェクトです。ドキュメントの詳細については、_document.printout()の次のmsdnリンクを参照してください。 office 20 office 2013以降 例のprintoutは、指定されたinputfileを介してoutputfilenameに印刷するとサイレントプリントになります。これは元のドキュメントと同じフォルダーに配置されますが、 pdf形式で、.pdf拡張子付き。