Windows 10の標準プリンターの一つとして[Microsoft Print to PDF]が追加された。これで作成されるPDFファイルのバージョンは「1.7(Acrobat 8.x)」です。
これまでPDFファイルを作成する場合には、専用のPDF作成ソフト(Adobe社のAcrobatなど)が必要だった。Office 2007からはマイクロソフトがExcel 2007やWord 2007のファイルをPDFファイルに作成する印刷をサポートしていたが、Web画面などをPDF化するのができなかった。
しかし、[Microsoft Print to PDF]は当分極めて重要な役割を担うであろう。なぜなら、Windows 10の新しいブラウザー[Microsoft Edge]を使用時にPDFファイルを作成する際、Adobe社のAcrobatでは正常に動作しない。PDF作成途中で止まってしまい(次の図)、PDFを作成することができません。Windowsのヘルプ印刷時もエラーになる。
※左画面のプロセスが残るためPC再起動が必要。
Adobe社のAcrobatはWindows Edgeなどで不具合がある
AcrobatがMicrosoft Edgeで使用できないことは、次のtwitter、@ AdobeSupportJアドビサポート担当の2015年7月30日(8月31日現在更新情報確認なし)で
[Microsoft Print to PDF]の設定画面 設定内容はシンプルかつ少ない
[Microsoft Print to PDF]で作成したPDFファイル
Microsoft Edge とプライバシー FAQ – Microsoft Windows
補足:[Microsoft XPS Document Writer]というPDFの置き換えをねらったマイクロソフト社のライターは標準で利用できるが、将来的に継続するかは不明(不安)。
追加
ツジイ様よりWordの印刷で使用できないとのコメントをいただきました。
確認のため、当方で印刷してみました。
Word 2013とWord 2010でも使用できます。
Word2013の印刷サンプル Word2013MSPtoPDF.pdf
Word2010の印刷サンプル Woed2010MSPtoPDF.pdf
Acrobat XでPDFファイルを開き、[ファイル]→[プロパティ]→[概要]タブを開くと、
Windows10にて、Wordの印刷でMicrosoft Print to PDFをプリンターに選んでもPDFファイルの作成は出来ません!!
コメントありがとうございます。当方でWord2010とWord2013でMicrosoft Print to PDFで印刷しました。
この印刷は、保存先を指定し名前を付けないと作成できません。
また、[印刷]ボタンをクリックしても自動でPDFファイルは表示されません。
ツジイ様がどのように行ったか是非お教えください。
VB.net 上で メモリー上のエクセルのオブジェクトを、 Microsoft Print to PDF 使用して、出力したところ、全角文字のフォントが「CIDFont+F1」 のフォントに置き換わりました。元のエクセルファイルは、「MS明朝」です。(別のコンピュータでは「游明朝」に代わりました。)いずれもPDFの文字列を、word上に張り付けて確認しています。
エクセルの、export機能を使って出力したPDFファイルでは、そのままのフォントで出力されます。
エクセルで使用しているフォントで出力できる方法がありましたらご教示ください。
PDF作成ソフトはフォントを「埋め込む」ようになっているようです。ご質問のフォントが置き換わる現象は再現できました。Excel 2016でフォントをMS明朝にして入力したものを通常の[印刷]からプリンターを[Microsoft Print to PDF]を選び[印刷]した場合には、フォントが「CIDFont+Fi(埋め込み)」となります。
おなじExcelシートを[エクスポート]―[PDF/XPSドキュメントの作成]でPDFファイルを作成するとフォントが「MS-Mincho(埋め込みサブセット)」になります。エクスポート画面に「レイアウト、書式、フォント、画像がそのまま維持されます」と表示されています。どのフォントを埋め込まれているかは、Adobe Acrobat Reader DCの[ファイル]―[プロパティ]―[フォント]タブで確認できます。[印刷]と[エクスポート]では同じMicrosoft Print to PDFを使用していますが、その動きは大きくことなるようです。[エキスポート]からPDFファイルを作成するのがいいようです。蛇足ながら、Microsoft Publisher 2016もエキスポートからPDFを作成するとうまくいくようです。
回答 ありがとうございました。
>エキスポート]からPDFファイルを作成するのがいいようです。
との、対応策ありがとうございます。
マクロで、機能を実装しておりますが「ExportAsFixedFormat」を使用しての対応かと思います。
こちらは、これまでも使っておりましたが、このメソッドを使用した場合、通常使用するプリンターの影響を受けるようでした。具体的には、正常に出力されていた表が、通常使用するプリンターを変更すると、表の途中で改ページするという現象が生じました。印字可能幅の制限が原因です。
今回、Microsoft Print to PDF のドライバーを直接使用して、マクロに
AppExcel.Sheets.PrintOut(, , , , “Microsoft Print to PDF”, “True”, , strFilePath)
のように記述することで、この問題は解決しました。
しかしながら、この方法によると、エクセル上のフォントtypeが反映されなくなったので解決策を探しております。ご指摘では、エクスポートの場合も、同じく「Microsoft Print to PDF」を使用しているとのことです。この関係性から考えると、エクセル上のフォントtypeを適用する場合は、通常使うプリンターをドライバーを利用しているという風にも見えます。たびたびのお願いで、申し訳ありませんが、何か対応策として考えられることがありましたら、ご教示ください。