フォーマット設定

フォーマットごとの完全なレンダリングオプション

すべてのドキュメントは BaseConfig 実装で開かれます。OpenDocumentAsync に渡すか、フォーマット カタログにデフォルトを作成させてください。以下のすべてのクラスは Doconut 名前空間にあります。

csharp
var token = await viewer.OpenDocumentAsync(path, new PdfConfig
{
    AllowSearch = true,
    AllowCopy   = true,
    ImageResolution = 150
});

継承とネストされた PDF 設定

すべてのフォーマットは 5 つの BaseConfig プロパティを継承します。PDF へリダイレクトできるフォーマットはネストされた PdfConfig を公開します。WordConfigExcelConfigPptConfig では、AllowSearchAllowCopy はネストされた PdfConfig を読み書きする便利なプロパティです。

DefaultRender = true はネイティブフォーマットのレンダラを選択します。PDF リダイレクトがあるフォーマットでは、false にすると最初にメモリ内 PDF に変換し、次に PDF ビューアを使用します。このパスはテキスト座標検索に便利ですが、余分な変換コストがかかります。

特に記載がない限り、表はコンストラクタ/プロパティのデフォルトを示しています。自動フォーマット カタログは意図的にそのうち 2 つを上書きします:ExcelConfigSplitWorksheets = true で作成され、MhtConfigDefaultRender = false で作成されます。

BaseConfig

プロパティデフォルト動作
intImageResolution00 はフォーマットのデフォルトを使用します。有効な明示的範囲は 25〜300 DPI です。無効な代入は無視されます。
stringDocumentCulture""日付と数値のロケールです。空でない値はトリムされ、空の代入は無視されます。
stringPassword""保護されたドキュメントのパスワードです。DocOptions.Password が自動的にここにコピーされます。
boolShowUItrue互換性プロパティです。現在のレンダラはブラウザツールバーの制御に使用しません。
boolCachePagestrueドキュメントセッションのためにレンダリングされたページ画像をキャッシュします。

PdfConfig

フォーマット: PDF。デフォルト DPI: 200

プロパティデフォルト動作
boolDefaultRendertrue互換性スイッチです。現在のファクトリはネイティブ PDF ビューアを使用します。
boolAllowSearchfalsePDF テキスト検索インデックスを構築/使用します。リクエストには Search ライセンス機能が必要です。
boolAllowCopyfalseテキスト選択/コピー操作を許可します。
boolExtractHyperlinksfalseクライアントオーバーレイ用にリンク矩形を抽出します。
intHyperlinksPageCount0リンクをスキャンする最大ページ数です。0 はすべてのページを意味します。
boolCompressImagesfalseレンダリング前に埋め込み画像を圧縮します。
intCompressQuality100圧縮が有効な場合に使用される JPEG 品質です。
boolResizeImagesfalseレンダリング前に埋め込み画像のサイズを変更します。
intResizeResolution300サイズ変更された画像の目標 DPI です。
boolCompressFastfalseより高速で低品質な圧縮パスを優先します。
boolFixInvalidImagesfalse無効な埋め込み画像の修復を試みます。
boolSplitSegmentsfalse検索/コピーを改善するために、行セグメントを跨いで分割された単語を再結合します。

ViewerConfigshowHyperlinks はクライアントオーバーレイを制御し、ExtractHyperlinks はサーバー側の抽出を制御します。両方を有効にしてください。

WordConfig

フォーマット: DOC, DOCX, DOCM, DOT, DOTX, DOTM, RTF, ODT, OTT, XML。デフォルト DPI: 200

プロパティデフォルト動作
boolDefaultRendertrueネイティブ Word レンダリングです。false の場合は PDF リダイレクトを使用します。
PdfConfigPdfConfignew instancePDF/検索パスで使用される設定です。
DocPaperSizePaperSizeA4出力用紙サイズです。幅/高さを指定する場合は Custom を使用します。
intPaperWidth595ポイント単位のカスタム幅です。
intPaperHeight841ポイント単位のカスタム高さです。
boolRemovePaperMarginfalseドキュメントのページ余白を削除します。
boolRenderPageColortrueWord の設定されたページカラーを保持します。false の場合は白ページをレンダリングします。
boolExportPdfAfalsePDF パスでアーカイブ用 PDF/A を使用します。
Encoding?FileEncodingnullソースのエンコーディングを上書きします。
stringFontInfo""フォント置換情報です。
string[]?FontFoldersnull追加のフォントディレクトリです。Linux/コンテナで特に有用です。
boolAllowSearchfalsePdfConfig.AllowSearch に委譲します。
boolAllowCopyfalsePdfConfig.AllowCopy に委譲します。
TableAutoFitBehaviorAutoFitAllTablesNoneNoneAutoFitToContents、または AutoFitToWindow のいずれかです。

ExcelConfig

フォーマット: XLS, XLSX, XLSM, XLSB, XLTX, XLTM, ODS, CSV。デフォルト DPI: 200

プロパティデフォルト動作
boolDefaultRendertrueネイティブシートレンダリングです。false の場合は PDF リダイレクトを使用します。
PdfConfigPdfConfignew instancePDF/検索パスの設定です。
ExcelPaperSizePaperSizePaperA4出力用紙サイズです。
doublePaperMargins0.25ページ余白(インチ)です。
boolPaperLandscapetrue横向きシートのレンダリングです。
boolAutoFitContentsfalse行の高さと列の幅を自動調整します。
boolRemoveEmptyContenttrue空のコンテンツを除外して出力をコンパクトにします。
boolCalculateFormulatrueレンダリング前に数式を再計算します。
boolShowRowColumnHeaderstrueスプレッドシートのヘッダーを含めます。
boolExportPdfAfalsePDF パスで PDF/A を使用します。
boolSplitWorksheetsfalseワークシートを別々のページグループとして保持します。
boolShowEmptyWorkSheetsfalse空のワークシートも含めます。
boolExportLandscapefalse横向きエクスポートを強制します。
boolExportOnePagePerSheetfalse各ワークシートを 1 ページに収めます。
boolMemoryOptimizationPreferencetrueピークメモリを削減しますが、速度が低下する可能性があります。
boolAutoTrimWorksheetRenderRangetrue明示的な印刷領域がない場合、表示されている使用範囲のみをレンダリングします。
boolAutoTrimPreserveExistingPrintAreatrue自動トリム中にブックで定義された印刷領域を保持します。
string?PrintAreanull"A1:Z100" のような明示的な範囲です。
boolPrintGridlinesfalseワークシートのグリッドラインを印刷します。
boolPrintHeadingsfalse行/列のヘッダーを印刷します。
List<string>SheetNamesempty指定された名前のワークシートにレンダリングを制限します。
CustomStyleCell?CustomStylesnull日付/小数/整数の書式オーバーライド(オプション)です。
boolAllowSearchfalsePdfConfig.AllowSearch に委譲します。
boolAllowCopyfalsePdfConfig.AllowCopy に委譲します。

CustomStyleCellCustomStyleDateTimeCustomStyleNumberDecimalCustomStyleNumberInteger を公開し、すべて nullable な文字列です。

new ExcelConfig()SplitWorksheetsfalse に設定します。明示的な設定なしで Excel ファイルを開くと、フォーマット カタログが使用され、true に設定されます。

PptConfig

フォーマット: PPT, PPTX, PPTM, PPSX, PPSM, POT, POTX, POTM, ODP。デフォルト DPI: 200

プロパティデフォルト動作
boolDefaultRendertrueネイティブスライドレンダリングです。false の場合は PDF リダイレクトを使用します。
boolFastLoadfalseオープン時に最初のスライドのレンダリングを回避し、メタデータを使用してオンデマンドでレンダリングします。
PdfConfigPdfConfignew instancePDF/検索動作の設定です。
stringFontInfo""フォント置換情報です。
string[]?FontFoldersnull追加のフォントディレクトリです。
boolAllowSearchfalsePdfConfig.AllowSearch に委譲します。
boolAllowCopyfalsePdfConfig.AllowCopy に委譲します。

Linux および macOS では、現在のエンジンでプレゼンテーションをレンダリングするために libgdiplusSystem.Drawing.EnableUnixSupport=true が必要です。プレゼンテーションで使用されるフォントをインストールするか、FontFolders を提供してください。

CadConfig

フォーマット: DWG, DXF, DGN。デフォルト DPI: 200

プロパティデフォルト動作
boolDefaultRendertrueネイティブ CAD レンダリングです。false の場合は PDF リダイレクトを使用します。
PdfConfigPdfConfignew instancePDF パスの設定です。
boolExportPdfAfalseアーカイブ用 PDF/A 出力です。
boolShowColortrueモノクロではなくカラーです。
boolWhiteBackgroundtrue黒ではなく白の背景です。
shortLineWidth25CAD のストローク幅です。
boolShowLayoutsfalseレイアウトタブをレンダリングします。
boolShowModeltrueモデル空間をレンダリングします。
boolCheck3DSolidtrue3D ソリッドを処理します。
boolExportAllLayoutsfalseすべてのレイアウトをエクスポートし、モデル/レイアウトの選択を上書きします。
boolLimitMinimumSizefalseMinimumSize を適用します。
intMinimumSize700ピクセル単位の最小出力サイズです。
boolLimitMaximumSizefalseMaximumSize を適用します。
intMaximumSize700ピクセル単位の最大出力サイズです。
boolShowAllLayoutsDgnfalseすべての DGN レイアウトを含めます。
boolAutomaticLayoutScalingtrueレイアウトを自動的にスケーリングします。
floatPdfMargins0.5PDF の余白(インチ)です。
RenderQualityQualityImageLowラスタ品質: LowMediumHigh のいずれかです。
RenderQualityQualityTextMediumテキスト品質: LowMediumHigh のいずれかです。

EmailConfig

フォーマット: EML, EMLX, MSG。デフォルト DPI: 200

プロパティデフォルト動作
boolDefaultRendertrueネイティブメールレンダリングです。false の場合は PDF リダイレクトを使用します。
PdfConfigPdfConfignew instancePDF パスの設定です。
Encoding?EmailEncodingnullメッセージのエンコーディングを上書きします。
Encoding?SubjectEncodingnull件名のエンコーディングを上書きします。
Encoding?BodyEncodingnull本文のエンコーディングを上書きします。
boolSkipExternalImagesfalseリモート参照された画像をロードしません。信頼できないメールに推奨されます。
boolRemoveLastWhitePagefalse末尾の空白ページを削除します。
boolUseAntiAliasingfalseアンチエイリアスを有効にします。
boolUseHighQualityRenderingfalseよりクリーンで遅いレンダリングを優先します。
TimeSpan?TimeZoneOffsetnull日付に使用されるタイムゾーンを上書きします。
boolForcePageSizefalse固定ページサイズを強制します。

ImageConfig、TiffConfig、PsdConfig

ImageConfig は JPG、JPEG、JPE、PNG、BMP、GIF、ICO、EPS、TGA、WEBP、CDR、CMX、DNG、EMF、WMF、AVIF、SVG をカバーします。デフォルト DPI は 100 です。

設定プロパティデフォルト動作
ImageConfigMaxImagePixelSize3000最大幅/高さです。0 は無制限を意味し、50 未満の非ゼロ値は無視されます。
ImageConfigTransparentPngtruePNG の透過性を保持します。false の場合は白背景を使用します。
TiffConfigno additional propertiesDPI 200追加プロパティはありません。DPI 200BaseConfig のみ使用し、マルチページ TIFF をサポートします。
PsdConfigMaxImagePixelSize3000ImageConfig と同様の 0/最小 50 の検証です。デフォルト DPI は 100 です。

DicomConfig

フォーマット: DCM、IMA。実効デフォルト DPI: 100。DICOM プラグインが必要です。

プロパティデフォルト動作
intHorizontalResolution100 effective明示的な水平 DPI。指定がなければ ImageResolution、それもなければ 100。
intVerticalResolution100 effective明示的な垂直 DPI。指定がなければ ImageResolution、それもなければ 100。
intAnimationFrameDelayMs100マルチフレームアニメーションの遅延です。GIF のタイミングは 10 ms 単位です。
ushortLoopCount00 は無限ループです。正の値はその回数で停止します。
DicomDisplayModeDisplayModeAnimationAndFramesAnimationOnlyFramesOnly、またはそれらの組み合わせである概要と静的フレームです。

TxtConfig

フォーマット: TXT。デフォルト DPI: 200

プロパティデフォルト動作
DocPaperSizePaperSizeA4出力用紙サイズです。
Encoding?FileEncodingnullnull の場合は UTF-8 を使用します。
stringFontInformation""テキストレンダリング用のフォント情報です。

プレーンテキストでリッチなページレイアウトが必要な場合は WordConfig を使用してください。

ProjectConfig

フォーマット: MPP、MPPX、MPX。デフォルト DPI: 200

プロパティデフォルト動作
boolDefaultRendertrueネイティブ Gantt 画像です。false の場合はテキストベースの PDF パスを使用します。
PdfConfigPdfConfignew instancePDF パスの設定です。
boolExportPdfAtrueアーカイブ用 PDF/A 出力です。
MppPaperSizePaperSizeLedgerプロジェクト出力用紙サイズです。
MppTimeScaleTimeScaleMonthsDays または Months
MppFormatPresentationFormatGanttChartGanttChartTaskUsageResourceUsageResourceSheetTaskSheet のいずれかです。

正確なテキスト座標検索のためには DefaultRender = false を使用してください。

VisioConfig

フォーマット: VSD、VSDX、VSS、VSSX、VST、VSTX、VDX、VSX、VSDM。デフォルト DPI: 200

プロパティデフォルト動作
boolDefaultRendertrueネイティブ図表レンダリングです。false の場合は PDF リダイレクトを使用します。
PdfConfigPdfConfignew instancePDF パスの設定です。
boolExportPdfAtrueアーカイブ用 PDF/A 出力です。

HtmlConfig、EpubConfig、MhtConfig、XpsConfig

4 つすべてがデフォルトで 200 DPI で、ネストされた PdfConfig を公開します。

設定フォーマットDefaultRender追加プロパティ/動作
HtmlConfigHTML, HTMtrueネイティブレンダリングです。テキストベースの PDF 検索パスにするには false を使用します。
EpubConfigEPUBtrueネイティブレンダリングです。false の場合は PDF を使用します。
MhtConfigMHT, MHTMLtrue on the class; false in the automatic catalogクラス上では true、自動カタログでは false。通常の設定なしで開くと検索可能な PDF リダイレクトを使用します。明示的に構築されたデフォルトインスタンスはネイティブにレンダリングします。
XpsConfigXPSfalseデフォルトで PDF パスを使用します。ネイティブ画像レンダリングにするには true を設定してください。

ファミリ別設定例

csharp
BaseConfig[] configs =
[
    new PdfConfig
    {
        AllowSearch = true,
        ExtractHyperlinks = true,
        HyperlinksPageCount = 0
    },
    new WordConfig
    {
        PaperSize = DocPaperSize.A4,
        RemovePaperMargin = false,
        FontFolders = ["/usr/share/fonts/truetype"],
        AllowSearch = true
    },
    new ExcelConfig
    {
        PaperLandscape = true,
        AutoFitContents = true,
        CalculateFormula = true,
        SplitWorksheets = false,
        PrintGridlines = false
    },
    new PptConfig
    {
        FastLoad = true,
        FontFolders = ["/usr/share/fonts/truetype"],
        AllowSearch = true
    },
    new CadConfig
    {
        ShowColor = true,
        WhiteBackground = true,
        ShowModel = true,
        ShowLayouts = false,
        QualityText = CadConfig.RenderQuality.High
    },
    new EmailConfig
    {
        SkipExternalImages = true,
        RemoveLastWhitePage = true,
        TimeZoneOffset = TimeSpan.Zero
    },
    new ImageConfig
    {
        MaxImagePixelSize = 3000,
        TransparentPng = true
    },
    new DicomConfig
    {
        DisplayMode = DicomDisplayMode.AnimationAndFrames,
        AnimationFrameDelayMs = 100,
        LoopCount = 0
    }
];

拡張子別選択

csharp
static BaseConfig? ConfigForExtension(string extUpper) => extUpper switch
{
    ".DOC" or ".DOCX" or ".DOT" or ".DOTX" or ".ODT" => new WordConfig
    {
        AutoFitAllTables = WordConfig.TableAutoFitBehavior.AutoFitToWindow,
        PaperSize = DocPaperSize.Tabloid,
        PdfConfig = new PdfConfig { ExtractHyperlinks = true, HyperlinksPageCount = 5, AllowCopy = true }
    },
    ".PDF" => new PdfConfig { AllowSearch = true, AllowCopy = true },
    ".XLS" or ".XLSX" or ".ODS" or ".CSV" => new ExcelConfig { AllowSearch = true, AllowCopy = true },
    ".DCM" or ".IMA" => new DicomConfig { DisplayMode = DicomDisplayMode.AnimationAndFrames },
    // DefaultRender = false → PDF redirect → pixel-accurate native text search
    ".HTML" or ".HTM" => new HtmlConfig { DefaultRender = false },
    ".EML" or ".EMLX" or ".MSG" => new EmailConfig { DefaultRender = false },
    _ => null // fall back to the format's default config
};

このページは役に立ちましたか?