フォーマット設定
フォーマットごとの完全なレンダリングオプション
すべてのドキュメントは 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 設定)
フォーマット: 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 | 検索/コピーを改善するために、行セグメントを跨ぐ単語を再結合します。 |
showHyperlinks は ViewerConfig でクライアントオーバーレイを制御し、ExtractHyperlinks はサーバ抽出を制御します。両方を有効にします。
WordConfig(Word 設定)
フォーマット: DOC, DOCX, DOCM, DOT, DOTX, DOTM, RTF, ODT, OTT, XML。デフォルト DPI: 200。
| 型 | プロパティ | デフォルト | 動作 |
|---|---|---|---|
bool | DefaultRender | true | ネイティブ Word レンダリングです。false は PDF リダイレクトを使用します。 |
PdfConfig | PdfConfig | new instance | 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 | new instance | 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 | empty | 名前付きワークシートにレンダリングを制限。 |
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 | new instance | 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 | new instance | 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。 |
メール設定
フォーマット: 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 は無制限を意味します。0 以外で 50 未満の値は無視されます。 |
ImageConfig | TransparentPng | true | PNG の透過性を保持します; false は白い背景を使用します。 |
TiffConfig | no additional properties | DPI 200 | BaseConfig のみを使用します; マルチページ TIFF をサポートします。 |
PsdConfig | MaxImagePixelSize | 3000 | 0/minimum-50 の検証は ImageConfig と同様です; デフォルト DPI は 100 です。 |
Dicom設定
フォーマット: DCM、IMA。デフォルト有効 DPI: 100。DICOM プラグインが必要です。
| タイプ | プロパティ | デフォルト | 動作 |
|---|---|---|---|
int | HorizontalResolution | 100 effective | 水平 DPI を明示的に指定します; それ以外は ImageResolution、次に 100。 |
int | VerticalResolution | 100 effective | 垂直 DPI を明示的に指定します; それ以外は ImageResolution、次に 100。 |
int | AnimationFrameDelayMs | 100 | マルチフレームアニメーションの遅延; GIF のタイミングは 10 ms 単位を使用します。 |
ushort | LoopCount | 0 | 0 は無限にループします; 正の値はその回数で停止します。 |
DicomDisplayMode | DisplayMode | AnimationAndFrames | AnimationOnly、FramesOnly、または概要と静止フレームの組み合わせ。 |
Txt設定
フォーマット: TXT。デフォルト DPI: 200。
| タイプ | プロパティ | デフォルト | 動作 |
|---|---|---|---|
DocPaperSize | PaperSize | A4 | 出力用紙サイズ。 |
Encoding? | FileEncoding | null | null は UTF-8 を使用します。 |
string | FontInformation | "" | テキストレンダリング用のフォント情報。 |
プレーンテキストでよりリッチなページレイアウト動作が必要な場合は WordConfig を使用してください。
プロジェクト設定
フォーマット: 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 を使用してください。
Visio設定
フォーマット: 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 = ["/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
}
];拡張子別の選択
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 リダイレクト → ピクセル単位で正確なネイティブテキスト検索
".HTML" or ".HTM" => new HtmlConfig { DefaultRender = false },
".EML" or ".EMLX" or ".MSG" => new EmailConfig { DefaultRender = false },
_ => null // format のデフォルト設定にフォールバックする
};このページは役に立ちましたか?