フォーマット構成
フォーマットごとの完全なレンダリングオプション
すべてのドキュメントは BaseConfig の実装で開かれます。OpenDocumentAsync に渡すか、フォーマット カタログにデフォルトを作成させてください。以下のすべてのクラスは Doconut 名前空間にあります。
var token = await viewer.OpenDocumentAsync(path, new PdfConfig
{
AllowSearch = true,
AllowCopy = true,
ImageResolution = 150
});継承とネストされた PDF 設定
すべてのフォーマットは 5 つの BaseConfig プロパティを継承します。PDF へリダイレクトできるフォーマットはネストされた PdfConfig を公開します。WordConfig、ExcelConfig、PptConfig では、AllowSearch と AllowCopy はネストされた PdfConfig を読み書きする便利なプロパティです。
DefaultRender = true はネイティブ フォーマット レンダラーを選択します。PDF リダイレクトがあるフォーマットでは、false にすると最初にインメモリ PDF に変換し、次に PDF ビューアを使用します。このパスはテキスト座標検索に便利ですが、余分な変換コストがかかります。
特に記載がない限り、表はコンストラクタ/プロパティのデフォルトを示しています。自動フォーマット カタログは意図的にそのうち 2 つを上書きします:ExcelConfig は SplitWorksheets = true で作成され、MhtConfig は DefaultRender = false で作成されます。
BaseConfig
| 型 | プロパティ | デフォルト | 動作 |
|---|---|---|---|
int | ImageResolution | 0 | 0 はフォーマットのデフォルトを使用します。有効な明示的範囲は 25〜300 DPI です。無効な代入は無視されます。 |
string | DocumentCulture | "" | 日付と数値のロケールです。空でない値はトリムされ、空白の代入は無視されます。 |
string | Password | "" | 保護されたドキュメントのパスワードです。DocOptions.Password が自動的にここにコピーされます。 |
bool | ShowUI | true | 互換性プロパティです。現在のレンダラーはブラウザ ツールバーの制御に使用しません。 |
bool | CachePages | true | ドキュメント セッションの間、レンダリングされたページ画像をキャッシュします。 |
PdfConfig
フォーマット: PDF。デフォルト DPI: 200。
| 型 | プロパティ | デフォルト | 動作 |
|---|---|---|---|
bool | DefaultRender | true | 互換性スイッチです。現在のファクトリはネイティブ PDF ビューアを使用します。 |
bool | AllowSearch | false | PDF テキスト検索インデックスを構築/使用します。リクエストには Search ライセンス機能が必要です。 |
bool | AllowCopy | false | テキスト選択/コピー操作を許可します。 |
bool | ExtractHyperlinks | false | クライアント オーバーレイ用にリンク矩形を抽出します。 |
int | HyperlinksPageCount | 0 | リンクをスキャンする最大ページ数です。0 はすべてのページを意味します。 |
bool | CompressImages | false | レンダリング前に埋め込み画像を圧縮します。 |
int | CompressQuality | 100 | 圧縮が有効な場合に使用される JPEG 品質です。 |
bool | ResizeImages | false | レンダリング前に埋め込み画像のサイズを変更します。 |
int | ResizeResolution | 300 | サイズ変更された画像の目標 DPI です。 |
bool | CompressFast | false | 高速で低品質な圧縮パスを優先します。 |
bool | FixInvalidImages | false | 無効な埋め込み画像の修復を試みます。 |
bool | SplitSegments | false | 行セグメントを跨いで分割された単語を再結合し、検索/コピーを改善します。 |
ViewerConfig の showHyperlinks はクライアント オーバーレイを制御し、ExtractHyperlinks はサーバー側の抽出を制御します。両方を有効にしてください。
WordConfig
フォーマット: DOC, DOCX, DOCM, DOT, DOTX, DOTM, RTF, ODT, OTT, XML。デフォルト DPI: 200。
| 型 | プロパティ | デフォルト | 動作 |
|---|---|---|---|
bool | DefaultRender | true | ネイティブ Word レンダリングです。false の場合は PDF リダイレクトを使用します。 |
PdfConfig | PdfConfig | 新しいインスタンス | PDF/検索パスで使用される設定です。 |
DocPaperSize | PaperSize | A4 | 出力用紙サイズです。幅/高さを指定する場合は Custom を使用します。 |
int | PaperWidth | 595 | ポイント単位のカスタム幅です。 |
int | PaperHeight | 841 | ポイント単位のカスタム高さです。 |
bool | RemovePaperMargin | false | ドキュメントのページ余白を削除します。 |
bool | RenderPageColor | true | Word の設定されたページカラーを保持します。false の場合は白いページをレンダリングします。 |
bool | ExportPdfA | false | PDF パスでアーカイブ用 PDF/A を使用します。 |
Encoding? | FileEncoding | null | ソースのエンコーディングを上書きします。 |
string | FontInfo | "" | フォント置換情報です。 |
string[]? | FontFolders | null | 追加のフォントディレクトリです。Linux/コンテナで特に有用です。 |
bool | AllowSearch | false | PdfConfig.AllowSearch に委譲します。 |
bool | AllowCopy | false | PdfConfig.AllowCopy に委譲します。 |
TableAutoFitBehavior | AutoFitAllTables | None | None、AutoFitToContents、AutoFitToWindow のいずれかです。 |
ExcelConfig
フォーマット: XLS, XLSX, XLSM, XLSB, XLTX, XLTM, ODS, CSV。デフォルト DPI: 200。
| 型 | プロパティ | デフォルト | 動作 |
|---|---|---|---|
bool | DefaultRender | true | ネイティブシートレンダリングです。false の場合は PDF リダイレクトを使用します。 |
PdfConfig | PdfConfig | 新しいインスタンス | PDF/検索パスの設定です。 |
ExcelPaperSize | PaperSize | PaperA4 | 出力用紙サイズです。 |
double | PaperMargins | 0.25 | インチ単位のページ余白です。 |
bool | PaperLandscape | true | 横向きシートのレンダリングです。 |
bool | AutoFitContents | false | 行の高さと列の幅を自動調整します。 |
bool | RemoveEmptyContent | true | 空のコンテンツを除外して出力をコンパクトにします。 |
bool | CalculateFormula | true | レンダリング前に数式を再計算します。 |
bool | ShowRowColumnHeaders | true | スプレッドシートのヘッダーを含めます。 |
bool | ExportPdfA | false | PDF パスで PDF/A を使用します。 |
bool | SplitWorksheets | false | ワークシートを別々のページグループとして保持します。 |
bool | ShowEmptyWorkSheets | false | 空のワークシートも含めます。 |
bool | ExportLandscape | false | 横向きエクスポートを強制します。 |
bool | ExportOnePagePerSheet | false | 各ワークシートを 1 ページに収めます。 |
bool | MemoryOptimizationPreference | true | ピークメモリを削減しますが、速度が低下する可能性があります。 |
bool | AutoTrimWorksheetRenderRange | true | 明示的な印刷領域がない場合、表示されている使用範囲のみをレンダリングします。 |
bool | AutoTrimPreserveExistingPrintArea | true | 自動トリム中にブックで定義された印刷領域を保持します。 |
string? | PrintArea | null | "A1:Z100" のような明示的な範囲です。 |
bool | PrintGridlines | false | ワークシートのグリッドラインを印刷します。 |
bool | PrintHeadings | false | 行/列の見出しを印刷します。 |
List<string> | SheetNames | 空 | 指定された名前のワークシートのみにレンダリングを制限します。 |
CustomStyleCell? | CustomStyles | null | オプションの日時/小数/整数の書式オーバーライドです。 |
bool | AllowSearch | false | PdfConfig.AllowSearch に委譲します。 |
bool | AllowCopy | false | PdfConfig.AllowCopy に委譲します。 |
CustomStyleCell は CustomStyleDateTime、CustomStyleNumberDecimal、CustomStyleNumberInteger を公開し、すべて nullable な文字列です。
new ExcelConfig() は SplitWorksheets を false に設定します。明示的な構成なしで Excel ファイルを開くと、フォーマット カタログが使用され、true に設定されます。
PptConfig
フォーマット: PPT, PPTX, PPTM, PPSX, PPSM, POT, POTX, POTM, ODP。デフォルト DPI: 200。
| 型 | プロパティ | デフォルト | 動作 |
|---|---|---|---|
bool | DefaultRender | true | ネイティブスライドレンダリングです。false の場合は PDF リダイレクトを使用します。 |
bool | FastLoad | false | オープン時に最初のスライドのレンダリングを回避し、メタデータを使用してオンデマンドでレンダリングします。 |
PdfConfig | PdfConfig | 新しいインスタンス | PDF/検索の動作設定です。 |
string | FontInfo | "" | フォント置換情報です。 |
string[]? | FontFolders | null | 追加のフォントディレクトリです。 |
bool | AllowSearch | false | PdfConfig.AllowSearch に委譲します。 |
bool | AllowCopy | false | PdfConfig.AllowCopy に委譲します。 |
Linux と macOS では、現在のエンジンでプレゼンテーションをレンダリングするために libgdiplus と System.Drawing.EnableUnixSupport=true が必要です。プレゼンテーションで使用するフォントをインストールするか、FontFolders を提供してください。
CadConfig
フォーマット: DWG, DXF, DGN。デフォルト DPI: 200。
| 型 | プロパティ | デフォルト | 動作 |
|---|---|---|---|
bool | DefaultRender | true | ネイティブ CAD レンダリングです。false の場合は PDF リダイレクトを使用します。 |
PdfConfig | PdfConfig | 新しいインスタンス | PDF パスの設定です。 |
bool | ExportPdfA | false | アーカイブ用 PDF/A 出力です。 |
bool | ShowColor | true | モノクロではなくカラーです。 |
bool | WhiteBackground | true | 黒ではなく白の背景です。 |
short | LineWidth | 25 | CAD のストローク幅です。 |
bool | ShowLayouts | false | レイアウト タブをレンダリングします。 |
bool | ShowModel | true | モデル空間をレンダリングします。 |
bool | Check3DSolid | true | 3D ソリッドを処理します。 |
bool | ExportAllLayouts | false | すべてのレイアウトをエクスポートし、モデル/レイアウトの選択を上書きします。 |
bool | LimitMinimumSize | false | MinimumSize を適用します。 |
int | MinimumSize | 700 | ピクセル単位の最小出力サイズです。 |
bool | LimitMaximumSize | false | MaximumSize を適用します。 |
int | MaximumSize | 700 | ピクセル単位の最大出力サイズです。 |
bool | ShowAllLayoutsDgn | false | すべての DGN レイアウトを含めます。 |
bool | AutomaticLayoutScaling | true | レイアウトを自動的にスケーリングします。 |
float | PdfMargins | 0.5 | インチ単位の PDF マージンです。 |
RenderQuality | QualityImage | Low | ラスタ品質: Low、Medium、High のいずれかです。 |
RenderQuality | QualityText | Medium | テキスト品質: Low、Medium、High のいずれかです。 |
EmailConfig
フォーマット: EML, EMLX, MSG。デフォルト DPI: 200。
| 型 | プロパティ | デフォルト | 動作 |
|---|---|---|---|
bool | DefaultRender | true | ネイティブメールレンダリングです。false の場合は PDF リダイレクトを使用します。 |
PdfConfig | PdfConfig | 新しいインスタンス | PDF パスの設定です。 |
Encoding? | EmailEncoding | null | メッセージのエンコーディングを上書きします。 |
Encoding? | SubjectEncoding | null | 件名のエンコーディングを上書きします。 |
Encoding? | BodyEncoding | null | 本文のエンコーディングを上書きします。 |
bool | SkipExternalImages | false | リモート参照された画像を読み込まないようにします。信頼できないメールに推奨されます。 |
bool | RemoveLastWhitePage | false | 末尾の空白ページを削除します。 |
bool | UseAntiAliasing | false | アンチエイリアスを有効にします。 |
bool | UseHighQualityRendering | false | よりきれいで遅いレンダリングを優先します。 |
TimeSpan? | TimeZoneOffset | null | 日付に使用されるタイムゾーンを上書きします。 |
bool | ForcePageSize | false | 固定ページサイズを強制します。 |
ImageConfig、TiffConfig、PsdConfig
ImageConfig は JPG、JPEG、JPE、PNG、BMP、GIF、ICO、EPS、TGA、WEBP、CDR、CMX、DNG、EMF、WMF、AVIF、SVG をカバーします。デフォルト DPI は 100 です。
| 構成 | プロパティ | デフォルト | 動作 |
|---|---|---|---|
ImageConfig | MaxImagePixelSize | 3000 | 最大幅/高さです。0 は無制限を意味します。50 未満の非ゼロ値は無視されます。 |
ImageConfig | TransparentPng | true | PNG の透過性を保持します。false の場合は白い背景を使用します。 |
TiffConfig | 追加プロパティなし | DPI 200 | BaseConfig のみ使用します。マルチページ TIFF をサポートします。 |
PsdConfig | MaxImagePixelSize | 3000 | ImageConfig と同様の 0/最小 50 の検証です。デフォルト DPI は 100 です。 |
DicomConfig
フォーマット: DCM, IMA。実効デフォルト DPI: 100。DICOM プラグインが必要です。
| 型 | プロパティ | デフォルト | 動作 |
|---|---|---|---|
int | HorizontalResolution | 100 実効 | 明示的な水平 DPI。指定がない場合は ImageResolution、それもなければ 100 を使用します。 |
int | VerticalResolution | 100 実効 | 明示的な垂直 DPI。指定がない場合は ImageResolution、それもなければ 100 を使用します。 |
int | AnimationFrameDelayMs | 100 | マルチフレーム アニメーションの遅延です。GIF のタイミングは 10 ms 単位です。 |
ushort | LoopCount | 0 | 0 は無限ループです。正の値はその回数で停止します。 |
DicomDisplayMode | DisplayMode | AnimationAndFrames | AnimationOnly、FramesOnly、または概要と静的フレームの組み合わせです。 |
TxtConfig
フォーマット: TXT。デフォルト DPI: 200。
| 型 | プロパティ | デフォルト | 動作 |
|---|---|---|---|
DocPaperSize | PaperSize | A4 | 出力用紙サイズです。 |
Encoding? | FileEncoding | null | null の場合は UTF-8 を使用します。 |
string | FontInformation | "" | テキストレンダリング用のフォント情報です。 |
プレーンテキストでよりリッチなページレイアウトが必要な場合は WordConfig を使用してください。
ProjectConfig
フォーマット: MPP, MPPX, MPX。デフォルト DPI: 200。
| 型 | プロパティ | デフォルト | 動作 |
|---|---|---|---|
bool | DefaultRender | true | ネイティブ Gantt 画像です。false の場合はテキストベースの PDF パスを使用します。 |
PdfConfig | PdfConfig | 新しいインスタンス | PDF パスの設定です。 |
bool | ExportPdfA | true | アーカイブ用 PDF/A 出力です。 |
MppPaperSize | PaperSize | Ledger | プロジェクト出力用紙サイズです。 |
MppTimeScale | TimeScale | Months | Days または Months。 |
MppFormat | PresentationFormat | GanttChart | GanttChart、TaskUsage、ResourceUsage、ResourceSheet、TaskSheet のいずれかです。 |
正確なテキスト座標検索のためには DefaultRender = false を使用してください。
VisioConfig
フォーマット: VSD, VSDX, VSS, VSSX, VST, VSTX, VDX, VSX, VSDM。デフォルト DPI: 200。
| 型 | プロパティ | デフォルト | 動作 |
|---|---|---|---|
bool | DefaultRender | true | ネイティブ図表レンダリングです。false の場合は PDF リダイレクトを使用します。 |
PdfConfig | PdfConfig | 新しいインスタンス | PDF パスの設定です。 |
bool | ExportPdfA | true | アーカイブ用 PDF/A 出力です。 |
HtmlConfig、EpubConfig、MhtConfig、XpsConfig
4 つすべてがデフォルトで 200 DPI で、ネストされた PdfConfig を公開します。
| 構成 | フォーマット | DefaultRender | 追加プロパティ/動作 |
|---|---|---|---|
HtmlConfig | HTML, HTM | true | ネイティブレンダリングです。テキストベースの PDF 検索パスを使用する場合は false にします。 |
EpubConfig | EPUB | true | ネイティブレンダリングです。false の場合は PDF を使用します。 |
MhtConfig | MHT, MHTML | クラスでは true、自動カタログでは false | 通常の設定なしでのオープンは検索可能な PDF リダイレクトを使用します。明示的に構築されたデフォルトインスタンスはネイティブにレンダリングします。 |
XpsConfig | XPS | false | デフォルトで PDF パスを使用します。ネイティブ画像レンダリングを行うには true に設定してください。 |
ファミリ別構成例
BaseConfig[] configs =
{
new PdfConfig
{
AllowSearch = true,
ExtractHyperlinks = true,
HyperlinksPageCount = 0
},
new WordConfig
{
PaperSize = DocPaperSize.A4,
RemovePaperMargin = false,
FontFolders = new[] { "/usr/share/fonts/truetype" },
AllowSearch = true
},
new ExcelConfig
{
PaperLandscape = true,
AutoFitContents = true,
CalculateFormula = true,
SplitWorksheets = false,
PrintGridlines = false
},
new PptConfig
{
FastLoad = true,
FontFolders = new[] { "/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
}
};拡張子別選択
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 // フォーマットのデフォルト構成にフォールバック
};このページは役に立ちましたか?