Esempio n. 1
0
        /// <summary>
        /// 別名でPDFファイルとして保存
        /// </summary>
        /// <remarks>
        /// http://msdn.microsoft.com/ja-jp/library/microsoft.office.tools.word.document.exportasfixedformat.aspx
        /// http://msdn.microsoft.com/en-us/library/bb412305.aspx
        /// </remarks>
        /// <param name="doc">Document</param>
        /// <param name="oPath">保存先ファイルパス</param>
        public void SaveAsPdfAs(Word.Document doc, string oPath)
        {
            object oMis = System.Reflection.Missing.Value;

            doc.ExportAsFixedFormat(
                //新しいファイル
                OutputFileName: oPath,
                //PDF または XPS 形式 WdExportFormat の値。
                ExportFormat: Word.WdExportFormat.wdExportFormatPDF,
                //新ファイルを自動的に開く場合は true。
                OpenAfterExport: false,
                //WdExportOptimizeFor の値。
                OptimizeFor: Word.WdExportOptimizeFor.wdExportOptimizeForOnScreen,
                //エクスポート範囲。 既定は文書全体。
                Range: Word.WdExportRange.wdExportAllDocument,
                //Range パラメーターが wdExportFromTo に設定されている場合に、開始ページ番号を指定します。
                From: 0,
                //Range パラメーターが wdExportFromTo に設定されている場合に、終了ページ番号を指定します。
                To: 0,
                //テキストをマークアップ付きで含めるか指定 WdExportItem の値。
                Item: Word.WdExportItem.wdExportDocumentWithMarkup,
                //新しいファイルに文書のプロパティを含める場合は true。それ以外の場合は false。
                IncludeDocProps: true,
                //IRM アクセス許可を XPS 文書にコピーする場合は true。既定値は、true 。
                KeepIRM: true,
                //ブックマークの型を指定する WdExportCreateBookmarks の値。
                CreateBookmarks: Word.WdExportCreateBookmarks.wdExportCreateWordBookmarks,
                //コンテンツのフローや論理構成などを含める場合は true。
                DocStructureTags: true,
                //テキストのビットマップを含める場合は true。既定値は、true 。
                BitmapMissingFonts: true,
                //PDF の使用を ISO 19005-1 として標準化されている PDF のサブセットに限定する場合は true。
                //それ以外の場合は false。 このパラメーターを true に設定すると、結果ファイルの独立性は高まりますが、
                //形式の制限が原因で、サイズが大きくなったり、ビジュアル アイテムの表示が増加したりする場合があります。
                //既定値は、false です。
                UseISO19005_1: false,
                //文書を別の固定形式で保存できるようにする IMsoDocExporter インターフェイスの実装へのポインター。
                //詳細については、「Office (2007) 固定形式エクスポートの拡張」を参照してください。
                FixedFormatExtClassPtr: ref oMis);
        }
        /// <summary>
        /// Saves the document as PDF.
        /// </summary>
        /// <param name="document">The document.</param>
        /// <param name="targetPath">The target path.</param>
        /// <returns></returns>
        private bool SaveDocumentAsPdf(ref Word.Document document, string targetPath)
        {
            Word.WdExportFormat exportFormat = Word.WdExportFormat.wdExportFormatPDF;
            bool openAfterExport = false;
            Word.WdExportOptimizeFor exportOptimizeFor = Word.WdExportOptimizeFor.wdExportOptimizeForPrint;
            Word.WdExportRange exportRange = Word.WdExportRange.wdExportAllDocument;
            int startPage = 0;
            int endPage = 0;
            Word.WdExportItem exportItem = Word.WdExportItem.wdExportDocumentContent;
            bool includeDocProps = false;
            bool keepIRM = true;
            Word.WdExportCreateBookmarks createBookmarks = Word.WdExportCreateBookmarks.wdExportCreateNoBookmarks;
            bool docStructureTags = true;
            bool bitmapMissingFonts = true;
            bool useISO19005_1 = false;
            object missing = Missing.Value;

            // Export it in the specified format.
            try
            {
                document.ExportAsFixedFormat(
                    targetPath,
                    exportFormat,
                    openAfterExport,
                    exportOptimizeFor,
                    exportRange,
                    startPage,
                    endPage,
                    exportItem,
                    includeDocProps,
                    keepIRM,
                    createBookmarks,
                    docStructureTags,
                    bitmapMissingFonts,
                    useISO19005_1,
                    ref missing);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Fehler beim Speichern als PDF:" + Environment.NewLine + ex.Message);
                return false;
            }
            return true;
        }