フォーマット設定
フォーマットごとの完全なレンダリングオプション
すべてのドキュメントは 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 | 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 のいずれかです。 |
EmailConfig
フォーマット: EML, EMLX, MSG。デフォルト DPI: 200。
| 型 | プロパティ | デフォルト | 動作 |
|---|---|---|---|
bool | DefaultRender | true | ネイティブメールレンダリングです。false の場合は PDF リダイレクトを使用します。 |
PdfConfig | PdfConfig | new instance | 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 | no additional properties | DPI 200 | 追加プロパティはありません。DPI 200。BaseConfig のみ使用し、マルチページ TIFF をサポートします。 |
PsdConfig | MaxImagePixelSize | 3000 | ImageConfig と同様の 0/最小 50 の検証です。デフォルト DPI は 100 です。 |
DicomConfig
フォーマット: 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、またはそれらの組み合わせである概要と静的フレームです。 |
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 | new instance | 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 | new instance | 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 on the class; false in the automatic catalog | クラス上では 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 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
};このページは役に立ちましたか?