ユーザーガイド
Glasswall Conform は、PDF ファイルを後続処理の標準に適合させるために前処理するよう設計されています。視覚コンテンツを抽出して再構築し、完全な Content Disarm and Reconstruction (CDR) 保護のために Glasswall Embedded Engine と併用する必要があります。
このドキュメントでは、PDF ドキュメントを再構築するための Conform の使用方法を説明し、コマンドラインツールを呼び出すためのいくつかの例も掲載しています。
インストール
Conform は、ターミナルからアクセスできるシステム全体のコマンドとしてインストールされます。
インストールが完了すると、glasswall_conform コマンドがシステムの PATH で利用可能になります。この変更を有効にするには、ターミナルセッションの再起動が必要になる場合があります。
Windows
Windows 版の Conform は、.exe インストーラーとして配布されます。C:\Program Files (x86)\Glasswall Conform にインストールされ、このフォルダーがシステム PATH に追加されます。
インストーラーを実行し、指示に従って Conform をインストールします。
.\glasswall-conform-1.1.0.exe
または、自動化や CI 環境向けにサイレントインストールすることもできます。
.\glasswall-conform-1.1.0.exe /VERYSILENT
Linux
Linux 版の Conform は、.rpm と .deb の両方のパッケージとして配布されます。
Both install files to /opt/glasswall_conform and create a symbolic link in /usr/local/bin to allow running glasswall_conform from the command line.
RPM(例: Rocky 9、Rocky 8)
sudo yum -y install ./glasswall_conform-1.1.0-1.x86_64.rpm
DEB(例: Ubuntu 24.04、Ubuntu 22.04)
sudo apt-get -y install ./glasswall-conform_1.1.0_amd64.deb
セットアップ
glasswall_conform を呼び出す前に、環境が正しく設定されていることを確認してください。
Embedded Engine を使用するモードでは、--library-directory に渡すディレクトリに Embedded Engine のバイナリが含まれている必要があります。Conform は起動時にこれを検証し、存在しない場合は短いメッセージを表示して停止します。
Linux
Embedded Engine を利用する処理モードでは、LD_LIBRARY_PATH に Embedded Engine を含むディレクトリが含まれるよう設定する必要があります。たとえば、Embedded Engine がパス /home/azureuser/glasswall/Release-16.2.0 にある場合は、LD_LIBRARY_PATH を一時的に次のように変更できます:
export LD_LIBRARY_PATH=/home/azureuser/glasswall/Release-16.2.0:$LD_LIBRARY_PATH
Ubuntu
Ubuntu ベースのシステムで、libgthread-2.0.so.0: cannot open shared object file: No such file or directory というエラーメッセージが表示された場合は、次のコマンドで必要なパッケージをインストールすることで解決できます:
DEBIAN_FRONTEND=noninteractive && apt update && apt install -y libglib2.0-0
Windows
Windows の依存関係は chocolatey を使用してインストールすることを推奨します。
すべての処理モードで、Microsoft Visual C++ Redistributable をインストールする必要があります。
Embedded Engine を利用する処理モードの場合:
-
PATHには、Embedded Engine を含むディレクトリが含まれるように設定する必要があります。たとえば、Embedded Engine がパスC:/glasswall/Release-16.2.0にある場合は、PATHを一時的に変更できます。SET "PATH=%PATH%;C:/glasswall/Release-16.2.0" -
OpenSSL light または OpenSSL をインストールする必要があります。
chocolatey を使用した、vcredist140 および openssl.light の Windows docker インストール例:
# escape=`
FROM mcr.microsoft.com/windows/servercore:ltsc2022
USER ContainerAdministrator
WORKDIR C:\temp\
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
# Download and install Chocolatey, to install OpenSSL and Visual C++ Redistributable
RUN Invoke-WebRequest -Uri 'https://chocolatey.org/install.ps1' -OutFile 'install.ps1'; `
./install.ps1; `
Remove-Item install.ps1; `
Import-Module "$env:ChocolateyInstall/helpers/chocolateyProfile.psm1"; `
choco install -y --fail-on-unfound --no-progress --stop-on-first-package-failure vcredist140; `
choco install -y --fail-on-unfound --no-progress --stop-on-first-package-failure openssl.light;
ライセンス
Glasswall Conform を動作させるには、有効なライセンスが必要です。ライセンスファイルを取得するには、[email protected] までお問い合わせください。
--license 引数は、すべての処理モードで使用でき、ライセンスファイルへの直接パス、または gwkey.lic ファイルを含むディレクトリへのパスを指定できます。
- Engine modes (
engine,engine_memory):--licenseは任意です。指定しない場合、Conform は--library-directoryからgwkey.licファイルを自動的に検索します。見つかった場合は、それがライセンスとして使用されます。見つからない場合は、エラーが発生します。 - Conform-only modes (
conform_only,conform_only_memory): 検索対象のライブラリディレクトリが存在しないため、--licenseは必須です。
ライセンスが存在しない、無効である、または必要な権限が含まれていない場合、Conform はエラーコード 2 で終了します。
--license LICENSE Path to the Glasswall Conform license file, or a directory containing 'gwkey.lic'.
Required for conform_only and conform_only_memory modes.
In engine modes, defaults to 'gwkey.lic' in the library directory if not specified.
処理モード
Conform はコマンドラインから実行され、ファイルを処理するための複数の処理モードを提供します。glasswall_conform を呼び出す際、最初の位置引数で処理モードを指定します。利用可能な処理モードは次のとおりです。
- engine: Engine を使用してファイルを保護します。非準拠ファイルは Conform によって再構築され、その後 Engine によって処理されます。
- conform_only: CDR 保護を提供せず、Conform のみを使用してファイルを再構築します。
- engine_memory: 標準入力を介して base64 エンコードされたファイルを受け取ります。Engine を使用して、メモリ内で単一のファイルを保護します。ファイルが非準拠の場合は、Conform を使用して再構築された後、Engine によって処理されます。処理済みファイルは標準出力を介して返され、エラーは標準エラーを介して返されます。
- conform_only_memory: 標準入力経由でbase64エンコードされたファイルを受け取ります。CDR保護を提供せず、Conformのみを使用して単一のファイルを再構築します。再構築されたファイルは標準出力経由で返されるか、エラーは標準エラー経由で返されます。
利用可能な処理モードを表示するには:
glasswall_conform -h
engine
この処理モードは意図されたデフォルトであり、Glasswall CDR技術を使用してファイルを無害化します。Embedded Engineへのアクセスと有効なライセンスが必要です。
この処理モードの呼び出し例については、エンドツーエンド保護を参照してください。
処理済みファイルは、3つの出力サブディレクトリのいずれかに分類されます:
- 01_engine_success: Conformによる再構築を必要とせず、Embedded Engineによって正常に処理されたファイル。
- 02_conform_engine_success: 当初はEmbedded Engineで処理できなかったPDFファイルで、Conformによって再構築された後、Embedded Engineによって正常に処理されたもの。
- 03_failure: Embedded EngineとConformの両方を使用しても処理に失敗したファイル、またはカスタムコンテンツ管理policyを使用して不許可に設定されたコンテンツを含むファイル。
engine 処理モードのコマンドライン引数を表示するには:
glasswall_conform engine -h
conform_only
この処理モードは、Embedded Engineを利用せずにファイルを再構築します。CDR保護は提供しません。
この処理モードの呼び出し例については、CDR保護なしでのファイル再構築を参照してください
処理済みファイルは、2つの出力サブディレクトリのいずれかに分類されます:
- 01_conform_success: Conform によって正常に再構築されたファイル。
- 02_failure: Conform による再構築に失敗したファイル。
conform_only 処理モードのコマンドライン引数を表示するには:
glasswall_conform conform_only -h
engine_memory
このモードは、標準入力経由で base64 エンコードされたファイルを受け取り、Embedded Engine を使用して処理します。ファイルが非準拠の場合は、Conform によって再構築された後、Engine によって処理されます。最終出力は標準出力経由で返され、エラーが発生した場合は標準エラー経由で返されます。ファイルはディスクに書き込まれません。
このモードは、ファイルをメモリ内に保持し、ファイルシステムの入力または出力に依存しないシステムとの統合に最適です。
この処理モードの呼び出し例については、ディスクからの読み取りやディスクへの書き込みを行わずにメモリ内のファイルを処理するを参照してください。
engine_memory 処理モードのコマンドライン引数を表示するには:
glasswall_conform engine_memory -h
オプション引数 --file-name を使用すると、メモリ内ファイルの名前を指定できます。これはログおよび後処理サマリーの書き込み時に使用され、指定しない場合は base64 エンコードされたデータの先頭 8 文字がデフォルトとして使用されます。
conform_only_memory
このモードは、標準入力経由で base64 エンコードされたファイルを受け取り、Conform のみを使用して再構築します(CDR 保護なし)。再構築されたファイルは標準出力経由で返され、エラーが発生した場合は標準エラー経由で返されます。ファイルはディスクに書き込まれません。
この処理モードの呼び出し例については、ディスクからの読み取りやディスクへの書き込みを行わずにメモリ内のファイルを処理するを参照してください。
conform_only_memory 処理モードのコマンドライン引数を表示するには:
glasswall_conform conform_only_memory -h
テスト
Conform を評価するための PDF テストファイルのデータセットは、ご要望に応じて提供可能です。Kiteworks 経由でテストファイルへのアクセスを希望される場合は、当社までお問い合わせください。
例
エンドツーエンド保護
この例では、engine 処理モードを最も基本的なレベルで使用する方法を示します。
glasswall_conform engine -i /home/azureuser/input_files -o /home/azureuser/output_files -l /home/azureuser/glasswall/Release-16.2.0
入力ディレクトリの例:
/home/azureuser/input_files
conforming_docx.docx
conforming_pdf.pdf
corrupt_docx.docx
nonconforming_pdf.pdf
unsupported_filetype.txt
処理後の出力ディレクトリの例:
/home/azureuser/output_files
├───01_engine_success
│ conforming_docx.docx
│ conforming_pdf.pdf
│
├───02_conform_engine_success
│ nonconforming_pdf.pdf
│
└───03_failure
corrupt_docx.docx
unsupported_filetype.txt
サブディレクトリ名は、次の引数を使用してカスタマイズできます。
- --engine-success-path: 任意。Conform による再構築を必要とせず、Embedded Engine によって正常に処理されたファイルの出力サブディレクトリ名。デフォルトは 01_engine_success
- --conform-success-path: 任意。最初は Embedded Engine で処理できなかったものの、Conform によって再構築された後に Embedded Engine で正常に処理されたファイルの出力サブディレクトリ名。デフォルトは 02_conform_engine_success
- --failure-path: 任意。Embedded Engine と Conform の両方を使用しても処理に失敗したファイルの出力サブディレクトリ名。デフォルトは 03_failure
Conform を使用してファイルを再構築したかどうかにかかわらず、正常に保護されたすべてのファイルを同じ出力ディレクトリに書き込む必要がある場合は、ファイルを同じ成功サブディレクトリパスに書き込むよう指定できます。例:
glasswall_conform engine -i /home/azureuser/input_files -o /home/azureuser/output_files -l /home/azureuser/glasswall/Release-16.2.0 --engine-success-path success --conform-success-path success --failure-path failure
処理後の端末出力(抜粋)の例:
Glasswall Conform processed 3/5 files (60.00%)
Glasswall Conform failed to process 2/5 files. (40.00%)
Exceptions:
PdfExtractionError (Total: 2)
- 1x Unable to extract content from PDF: '/home/azureuser/input_files/corrupt_docx.docx'
- 1x Unable to extract content from PDF: '/home/azureuser/input_files/unsupported_filetype.txt'
2024-11-06 14:28:50.242 glasswall_conform.config.logging INFO engine_mode Total elapsed time: 5.55 seconds
CDR 保護なしでファイルを再構築する
conform_only 処理モードは CDR 保護を提供せず、入力ディレクトリ -i、出力ディレクトリ -o、および --license パスが必要です。conform_only を参照してください。
glasswall_conform conform_only -i /home/azureuser/input_files -o /home/azureuser/output_files --license /home/azureuser/gwkey.lic
ディスクの読み取りや書き込みを行わずにメモリ内でファイルを処理する
engine_memory および conform_only_memory 処理モードを使用すると、I/O を使用せずにメモリ内でファイルを処理できます。
処理が成功した場合、base64 エンコードされた出力ファイルが標準出力経由で返されます。処理中にエラーが発生した場合は、エラーメッセージと後処理サマリーが標準エラーに書き込まれます。
タイムアウト失敗時の標準エラーの例:
Error: Processing failed for file: 'hus11976.pdf'. Summary: {'conform_version': '0.11.2', 'operating_system': 'Windows', 'summary_verbosity': 'all', 'processing_rates': {'success': 0.0, 'failure': 100.0}, 'processing_counts': {'success': 0, 'failure': 1, 'total': 1}, 'processing_time': {'elapsed_seconds': 8.25, 'files_per_sec': 0.12, 'secs_per_file': 8.25}, 'processing_arguments': {'mode': 'engine_memory', 'library_directory': 'C:/azure/sdk.editor/2.1394.0/build-sdk-editor-windows-amd64-dev_license', 'cautious_mode': False, 'max_workers': 1, 'timeout_seconds': 5.0, 'memory_limit_gib': 11.96, 'function_name': 'protect_file', 'content_management_policy': None}, 'processing_success': [], 'processing_failure': [{'file_name': 'hus11976.pdf', 'timed_out': True, 'out_of_memory': False, 'max_memory_used_in_gib': 0.32227325439453125, 'elapsed_time': 5.0007593631744385, 'exception': 'TimeoutError()', 'success': False}]}
基本的な使用例:
メモリ内の PDF ファイルの base64 エンコード文字列を直接 glasswall_conform にパイプします
echo "U29tZUJhc2U2NERhdGE=" | glasswall_conform.exe engine_memory -l "C:/azure/sdk.editor/2.1394.0" --file-name "SomeBase64Data"
または subprocess 経由で Python を使用する
import base64
import os
import subprocess
# File in memory, for this example simply loaded from a file path
file_path = r"C:\conform\input\Set-08-016599.pdf"
with open(file_path, "rb") as f:
file_bytes = f.read()
# Convert to base64-encoded string
encoded_file_bytes = base64.b64encode(file_bytes).decode("utf-8")
file_name = os.path.basename(file_path)
command = " ".join(
[
"glasswall_conform",
"engine_memory",
'-l "C:/azure/sdk.editor/2.1394.0"',
f'--file-name "{file_name}"', # Optional, used for summary and logs
f'--summary-path "C:/conform/summary_{file_name}.json"', # Optional
'--watermark "Processed for security: Visual elements may vary"', # Optional
]
)
# Run Conform with the base64-encoded string as an input
result = subprocess.run(command, input=encoded_file_bytes, text=True, capture_output=True, shell=True)
if result.stderr:
# Conform failed, handle error gracefully here
print(result.stderr)
else:
# Conform succeeded, convert the conformed file from base64 to bytes
conformed_file_bytes = base64.b64decode(result.stdout)
# Do something with the conformed file bytes, e.g. write to a file
with open("conformed_file.pdf", "wb") as f:
f.write(conformed_file_bytes)
同様に、conform_only_memory モードは、上記の例で engine_memory を置き換えて使用できます。この場合、-l 引数を省略し、このモードでは必須であるため --license を指定します。
高速モードと慎重モード
高速モードは Conform のデフォルトの処理モードです。最も高速な処理速度と PDF ファイルに対する最良の見た目を提供しますが、PDF 仕様への非常に厳格な準拠が求められるシナリオには適さない場合があります。
高速モードが無効になっている場合、またはファイルを処理できない場合、Conform は自動的に慎重モードにフォールバックします。このモードでは、埋め込みフォントを置き換えることで準拠性とリスク低減を優先し、カスタムフォントや不明なフォントに関連する問題の軽減に役立ちます。慎重モードでは、画像の劣化や欠落、フォントサイズの不一致、テキストの欠落など、見た目の忠実度が低下する場合があります。
- fast mode を無効にすることは、表示の忠実性を犠牲にしてでも PDF 標準への非常に厳格な準拠が不可欠な場合にのみ推奨されます。
- cautious mode を無効にすることは、埋め込みフォントの保持が不可欠な場合、または Conform がより広範な PDF を正常に処理できることよりも見た目が重要な場合にのみ推奨されます。
fast mode は、オプションのコマンドライン引数 --disable-fast-mode を使用して無効にできます。
cautious mode は、オプションのコマンドライン引数 --disable-cautious-mode を使用して無効にできます。
Conform が fast mode を使用してファイルを正常に処理した場合:
- 最速の処理速度。
- 最良の視覚的外観。
- カスタム埋め込みフォントは置換されません。
- PDF 標準への非常に厳格な準拠が求められるシナリオには適さない場合があります。
Conform が cautious mode のフォールバックを使用する場合:
- 処理速度が遅くなります。
- In a small number of cases, may result in reduced visual appearance, such as:
- 画像やグラフィックが劣化または欠落する場合があります。
- テキストの見た目に差異が生じる場合があります(例: サイズ、フォントスタイル、または間隔)。
- 不明な埋め込みフォントが使用されている場合、テキストが欠落することがあります。
- 仕様により厳格に準拠して PDF を処理します。
- カスタム埋め込みフォントを既知の安全なフォントに置換します。
Glasswall Python Wrapper の機能
engine 処理モードでは、Glasswall Python Wrapper の protect_file 関数がデフォルトで使用され、Embedded Engine を使ってファイルを処理します。これは、オプションのコマンドライン引数 -f を使用して変更できます。
A default sanitise content management policy is applied if a policy file is not specified using the optional -c command line argument.
必須の-lコマンドライン引数は、Embedded Engineを含むディレクトリを指している必要があります。
以下の引数はGlasswall Python Wrapperに関連します:
-l LIBRARY_DIRECTORY, --library-directory LIBRARY_DIRECTORY
Required. Path to directory containing the Embedded Engine.
-f FUNCTION_NAME, --function-name FUNCTION_NAME
Optional. Glasswall Python Wrapper function name to call during multiprocessing, such as 'protect_file' or 'export_file'. Default: 'protect_file'.
-c CONTENT_MANAGEMENT_POLICY, --content-management-policy CONTENT_MANAGEMENT_POLICY
Optional. Path to Embedded Engine content management policy file. If not provided, the default 'sanitise' policy is used.
--log-level-console-wrapper {CRITICAL,ERROR,WARNING,INFO,DEBUG,NOTSET}
Optional. Set logging level for writing Glasswall Python Wrapper logs to console. Default INFO.
例:
glasswall_conform engine -i /home/azureuser/input_files -o /home/azureuser/output_files -l /home/azureuser/glasswall/Release-16.2.0 -f protect_file -c /home/azureuser/glasswall/config.xml
マルチプロセッシング
すべての処理モードでは、Glasswall Python WrapperのGlasswallProcessManagerを活用して、ファイルを効率的に並行処理します。
以下の引数はマルチプロセッシングに関連します:
-w MAX_WORKERS, --max-workers MAX_WORKERS
Optional. Maximum workers for multiprocessing, 0=auto. Default: 0.
-t TIMEOUT_SECONDS, --timeout-seconds TIMEOUT_SECONDS
Optional. Multiprocessing timeout per file in seconds. Default: 180.
-m MEMORY_LIMIT_GIB, --memory-limit-gib MEMORY_LIMIT_GIB
Optional. Multiprocessing memory limit per file in GiB, 0=auto (4GiB min, worker distributed max). Default: 0.
例:
glasswall_conform engine -i /home/azureuser/input_files -o /home/azureuser/output_files -l /home/azureuser/glasswall/Release-16.2.0 -t 300 -m 12
ログ記録
Conform および Glasswall Python Wrapper のデフォルトのログレベルは INFO です。以下の引数はロギングに関連します:
--log-level-console {CRITICAL,ERROR,WARNING,INFO,DEBUG,NOTSET}
Optional. Set logging level for writing logs to console. Default INFO.
--log-level-file {CRITICAL,ERROR,WARNING,INFO,DEBUG,NOTSET}
Optional. Set logging level for writing logs to file. If not provided, logs will not be written to file.
--log-path LOG_PATH Optional. Path to output log file. Default is a timestamp-named file located at: '%TEMP%/glasswall_conform/logs'.
--log-level-console-wrapper {CRITICAL,ERROR,WARNING,INFO,DEBUG,NOTSET}
Optional. Set logging level for writing Glasswall Python Wrapper logs to console. Default INFO.
ほとんどのログ出力を抑制するには:
glasswall_conform engine -i /home/azureuser/input_files -o /home/azureuser/output_files -l /home/azureuser/glasswall/Release-16.2.0 --log-level-console CRITICAL --log-level-console-wrapper CRITICAL
コンテンツ処理率のカスタマイズ
このセクションは、fast mode が無効な場合にのみ適用されます。
デフォルトでは、Conform は可能な限り出力ファイルを生成します。元のドキュメントのコンテンツの一部しか正常に処理されていない場合でも同様です。この動作は常に望ましいとは限らず、各ドキュメント内の異なる種類のコンテンツに対してカスタマイズできます。
Conform は、不正な形式、破損、または未対応のテキストコンテンツを処理する際に「best guesses」を使用し、元のドキュメントから conformed document へできるだけ多くのテキストが転送されるようにします。たとえば、テキストのストロークカラーが不正な形式である場合や未対応の色形式である場合でも、そのテキストは出力ドキュメントに保持され、ストロークカラーはデフォルトで黒になります。
この「best guess」アプローチにより、元のものと似て見えるテキストになる場合や、場合によっては表示されないものの出力ドキュメント内には存在するテキストになる場合があります。best guess によって元のドキュメントと同じ方法でテキストが処理されることは保証できないため、処理率ではこれが完全には処理されていないコンテンツとして反映されます。その結果、テキストの処理率が低いことは、best guesses が適用された際にドキュメントの見た目が必ずしも視覚的に異なることを意味するわけではありません。
コンテンツ処理時の最小成功率を設定するために、3 つの引数を使用できます:
--text-min-success-rate TEXT_MIN_SUCCESS_RATE
Optional. The minimum success rate for processing text. Default: 0.0.
--image-min-success-rate IMAGE_MIN_SUCCESS_RATE
Optional. The minimum success rate for processing images. Default: 0.0.
--graphic-min-success-rate GRAPHIC_MIN_SUCCESS_RATE
Optional. The minimum success rate for processing graphics. Default: 0.0.
最小コンテンツ処理率の値を満たさない場合、そのファイルの処理は失敗と見なされ、出力ファイルは書き込まれません。
透かし
透かしはデフォルトでは無効ですが、--watermark 引数を使用して有効にできます。テキストはフォントサイズ 12、半透明の濃いグレーで追加されます。透かしは通常ドキュメントの右上に配置されますが、ページに適用されている回転によっては向きが異なる場合があります。透かしの最大テキスト長は現在 256 文字です。
--watermark WATERMARK
Optional. Adds a watermark to each page of the reconstructed document. Default '' (disabled).
例:
glasswall_conform engine -i /home/azureuser/input_files -o /home/azureuser/output_files -l /home/azureuser/glasswall/Release-16.2.0 --watermark "Glasswall Conform"
CID抑制
このセクションは、fast mode が無効な場合にのみ適用されます。
PDFでは、一部のフォントが大量の文字セットを管理するためにCID(Character Identifier)と呼ばれる仕組みを使用します。新しいPDFを構築する際、ツールが処理できない文字に遭遇すると、それらをデフォルトの疑問符文字(?)に置き換えます。--suppress-cid 引数を使用すると、処理不能なCIDをPDF内でどのように表現するかを調整できます。
--suppress-cid SUPPRESS_CID
Optional. Replace CID metadata that may be printed to the visual layer due to font array omissions with the supplied string, with placeholder text.
Glasswall Conform restricts the processing of PDFs to only known secure fonts. This is a deliberate security feature to make the PDF conform safely. Default '■'.
例:
glasswall_conform engine -i /home/azureuser/input_files -o /home/azureuser/output_files -l /home/azureuser/glasswall/Release-16.2.0 --suppress-cid "?"
フォント置換
このセクションは、fast mode が無効な場合にのみ適用されます。
Conform は、基本 14 Type1 フォントおよび Cambria フォントの bold、italic、bold italic バリアントをサポートしています。Conform は一部のカスタムフォントもサポートしています。
基本 14 Type1 フォントは次のとおりです:
- Courier, Courier-Bold, Courier-Oblique, Courier-BoldOblique
- Helvetica, Helvetica-Bold, Helvetica-Oblique, Helvetica-BoldOblique
- Times-Roman, Times-Bold, Times-Italic, Times-BoldItalic
- Symbol
- ZapfDingbats
サポートされていない埋め込みフォントは、Cambria フォントに置き換えられる場合があります。Cambria が埋め込みフォントのグリフをサポートしていない場合、その文字は抑制されます。詳細については、CID suppressionを参照してください。
デフォルトでは、一般的に埋め込まれる一部の sans serif フォントは、見た目の類似性を保つために Cambria ではなく Helvetica に置き換えられます。この機能やその他のフォント置換機能は、次の引数を使用して変更できます:
--disable-base-14-fonts
Optional. Disable matching embedded fonts to base 14 fonts.
This will result in more fonts being replaced by the fallback font, Cambria. Default False.
--disable-custom-fonts
Optional. Disable matching embedded fonts to custom fonts.
This will result in lower support for custom embedded fonts, and more fonts being replaced by the fallback font, Cambria. Default False.
--disable-sans-serif-replacement
Optional. Disable replacing some sans serif fonts with Helvetica instead of the fallback font, Cambria.
This will result in some replaced sans serif fonts looking more visually different when compared to the original file. Default False.
例:
glasswall_conform engine -i /home/azureuser/input_files -o /home/azureuser/output_files -l /home/azureuser/glasswall/Release-16.2.0 --disable-custom-fonts
ファイルの包含および除外フィルタリング
Conform では、include フィルターと exclude フィルターを使用することで、入力ディレクトリ内のどのファイルを処理するかをさらに細かく制御できます。これらのフィルターにより、コマンドラインから直接、基本的なUnix shell-style wildcardsを使って、処理するファイルまたは無視するファイルを指定できます。ファイルが包含ルールと除外ルールの両方に一致する場合、そのファイルは除外されます。
デフォルトでは、--include-files と --exclude-files 引数を省略した場合、Conform は入力ディレクトリ内に存在するすべてのファイルを処理します。
以下の引数は、ファイルの包含と除外に関連しています。
--include-files INCLUDE_FILES
Optional. Can be either a path to a file containing file paths/patterns or a semicolon-separated list of patterns (e.g. '*.pdf;*/SET_03/*'). Only matching files will be processed.
If None, all files are included. Default: None.
--exclude-files EXCLUDE_FILES
Optional. Can be either a path to a file containing file paths/patterns or a semicolon-separated list of patterns. Any matching files will be excluded from processing. If None, no
files are excluded. Default: None.
次の表は、使用できるパターンの例をいくつか示しています。
| パターン | 意味 | 例 | 一致するもの | 一致しないもの |
|---|---|---|---|---|
* | すべてに一致 | *.pdf | file.pdf, report.pdf | file.docx |
? | 任意の 1 文字に一致 | file_?.pdf | file_1.pdf, file_A.pdf | file_10.pdf |
[seq] | seq 内の任意の文字に一致します | file_[AB].pdf | file_A.pdf, file_B.pdf | file_C.pdf |
[!seq] | Matches any character not in seq | file_[!AB].pdf | file_C.pdf, file_D.pdf | file_A.pdf, file_B.pdf |
大文字と小文字の区別に関する考慮事項
ファイル名は、Linux では大文字と小文字が区別されますが、Windows では区別されません。この違いは、ファイルパスやパターンが異なるオペレーティングシステム間でどのように解釈されるかに影響します。
- Linux では、
report.pdfとReport.pdfは別のファイルとして扱われます。 - Windows では、両方とも同じファイルと見なされます。
推奨事項:
プラットフォーム間で一貫性を確保するため、ファイル名とパターンでは大文字と小文字の使い方を統一してください。複数の環境で作業する場合は、不一致を避けるため、必要に応じてワイルドカードパターン(*)の使用を検討してください。
単一ファイルの包含の処理
--include-files で単一ファイルを指定する場合、Conform はまず指定された値がディスク上のファイルかどうかを確認し、そうでない場合はその値をパターンとして扱うことに注意してください。
想定される問題: ユーザーが次のように指定した場合:
--include-files "/home/azureuser/input_files/first.pdf"
Conform は /home/azureuser/input_files/first.pdf がファイルとして存在することを認識し、複数のパスまたはパターンを含むリストファイルとしてそれを読み取ろうとします。
解決策: これが単一ファイル用のパターンであることを明示するには、末尾にセミコロンを追加します:
--include-files "/home/azureuser/input_files/first.pdf;"
これにより、Conform はそのパスをリストファイルではなくパターンとして扱います。
特定の PDF ファイルを含める
ファイル名に "report" を含む PDF のみを処理するには:
glasswall_conform engine -i /home/azureuser/input_files -o /home/azureuser/output_files -l /home/azureuser/glasswall/Release-16.2.0 --include-files "*report*.pdf"
結果: annual_report.pdf、summary_report_2023.pdf などのファイルのみが処理されます。
特定の PDF ファイルを除外する
名前に "draft" を含むものを除くすべての PDF を処理するには:
glasswall_conform engine -i /home/azureuser/input_files -o /home/azureuser/output_files -l /home/azureuser/glasswall/Release-16.2.0 --exclude-files "*draft*.pdf"
結果: proposal_draft.pdf や internal_draft_v2.pdf のようなファイルを除き、すべての PDF が処理されます。
ディレクトリ全体を除外する
/home/azureuser/input_files/archive/ 内のすべてのファイルを除外するには:
glasswall_conform engine -i /home/azureuser/input_files -o /home/azureuser/output_files -l /home/azureuser/glasswall/Release-16.2.0 --exclude-files "*/archive/*"
結果: /home/azureuser/input_files/archive/ 内のすべてがスキップされます。
include と exclude を併用する
ファイルが include ルールと exclude ルールの両方に一致する場合、そのファイルは除外されます。
SET_03 のすべてのファイルを処理しつつ、"error_log" を含むファイルを除外するには:
glasswall_conform engine -i /home/azureuser/input_files -o /home/azureuser/output_files -l /home/azureuser/glasswall/Release-16.2.0 --include-files "*/SET_03/*" --exclude-files "*error_log*"
結果: SET_03/ のファイルのみが処理されますが、ファイル名に "error_log" を含むものは除きます。
大きなリストにファイルを使用する
より複雑なフィルタリングでは、パターンや絶対ファイルパスを直接指定する代わりに、複数のパターンまたは絶対ファイルパスを含むファイルを指定できます。
インクルードリストファイルを使用する例:
glasswall_conform engine -i /home/azureuser/input_files -o /home/azureuser/output_files -l /home/azureuser/glasswall/Release-16.2.0 --include-files "include_list.txt"
include_list.txt の例:
*/SET_03/*.pdf
*reports_2023_*.pdf
/home/azureuser/input_files/SET_02/splat.pdf
結果: SET_03/ のファイル、reports_2023_ を含むファイル、および特定のファイル /home/azureuser/input_files/SET_02/splat.pdf のみを処理します。
出力ファイル構造と分類
The directory structure for output files can be customised for both the engine and conform_only processing modes using the --output-structure command line argument.
--output-structure {categorised,mirrored}
Optional. Defines the directory structure of output files. 'categorised' organises output files into subdirectories based on processing status ('engine_success', 'conform_success', 'failure').
'mirrored' places successfully processed output files directly in the output directory, maintaining the original input directory structure, and failed files will not be copied. Default: categorised.
省略した場合、デフォルトの categorised 構造が使用されます。カテゴリのサブディレクトリ名をカスタマイズするための追加オプションも利用できます。
- --engine-success-path: 任意。Conform による再構築を必要とせず、Embedded Engine によって正常に処理されたファイルの出力サブディレクトリ名。デフォルトは 01_engine_success
- --conform-success-path: 任意。最初は Embedded Engine で処理できなかったものの、Conform によって再構築された後に Embedded Engine で正常に処理されたファイルの出力サブディレクトリ名。デフォルトは 02_conform_engine_success
- --failure-path: 任意。Embedded Engine と Conform の両方を使用しても処理に失敗したファイルの出力サブディレクトリ名。デフォルトは 03_failure
categorised 出力構造の例
glasswall_conform engine -i /home/azureuser/input_files -o /home/azureuser/output_files -l /home/azureuser/glasswall/Release-16.2.0
入力ディレクトリの例:
/home/azureuser/input_files
conforming_docx.docx
conforming_pdf.pdf
corrupt_docx.docx
nonconforming_pdf.pdf
unsupported_filetype.txt
処理後の出力ディレクトリの例:
/home/azureuser/output_files
├───01_engine_success
│ conforming_docx.docx
│ conforming_pdf.pdf
│
├───02_conform_engine_success
│ nonconforming_pdf.pdf
│
└───03_failure
corrupt_docx.docx
unsupported_filetype.txt
categorised 出力構造を使用する場合、Conform がファイルの再構築に使用されたかどうかに関係なく、正常に保護されたすべてのファイルを同じ出力ディレクトリに書き出したい場合は、ファイルを同じ成功サブディレクトリパスに書き込むよう指定できます。例:
glasswall_conform engine -i /home/azureuser/input_files -o /home/azureuser/output_files -l /home/azureuser/glasswall/Release-16.2.0 --engine-success-path success --conform-success-path success --failure-path failure
mirrored 出力構造の例
glasswall_conform engine -i /home/azureuser/input_files -o /home/azureuser/output_files -l /home/azureuser/glasswall/Release-16.2.0 --output-structure mirrored
入力ディレクトリの例:
/home/azureuser/input_files
conforming_docx.docx
conforming_pdf.pdf
corrupt_docx.docx
nonconforming_pdf.pdf
unsupported_filetype.txt
処理後の出力ディレクトリの例:
/home/azureuser/output_files
conforming_docx.docx
conforming_pdf.pdf
nonconforming_pdf.pdf
処理後サマリー
デフォルトでは、Conform によるファイル処理の完了後にサマリーが出力されます。サマリーには、各ファイルの戻りステータス、処理時間、メモリ使用量などの詳細情報が含まれます。--summary-verbosity 引数は、サマリーに含めるファイルを制御します。この設定はログレベルとは独立しており、詳細なログ出力には影響しません。
利用可能なオプション
all(デフォルト) - 正常に処理されたファイルと失敗したファイルの両方を含みます。failure- 失敗したファイルのみを含みます。success- 正常に処理されたファイルのみを含みます。none- サマリー出力を完全に無効にします。
--summary-path 引数を使用すると、サマリーをターミナルに表示するだけでなく、JSON ファイルとしてディスクに書き出すことができます。
失敗したファイルのみをサマリー出力に含める例:
glasswall_conform engine -i /home/azureuser/input_files -o /home/azureuser/output_files -l /home/azureuser/glasswall/Release-16.2.0 --summary-verbosity failure --summary-path /home/azureuser/conform_summary.json
サマリー出力を完全に無効にする例:
glasswall_conform engine -i /home/azureuser/input_files -o /home/azureuser/output_files -l /home/azureuser/glasswall/Release-16.2.0 --summary-verbosity none --summary-path /home/azureuser/conform_summary.json
サマリー JSON 出力の例(Windows):
{
"conform_version": "0.10.1",
"operating_system": "Windows",
"summary_verbosity": "all",
"processing_rates": {
"success": 50.0,
"failure": 50.0
},
"processing_counts": {
"success": 2,
"failure": 2,
"total": 4
},
"processing_time": {
"elapsed_seconds": 43.61,
"files_per_sec": 0.09,
"secs_per_file": 10.9
},
"processing_arguments": {
"mode": "engine",
"input_directory": "C:\\conform\\input",
"output_directory": "C:\\conform\\output",
"library_directory": "C:\\azure\\sdk.editor\\2.1394.0",
"cautious_mode": false,
"max_workers": 3,
"timeout_seconds": 180,
"memory_limit_gib": 4.35,
"function_name": "protect_file",
"content_management_policy": null,
"include_files": null,
"exclude_files": null,
"output_structure": "categorised"
},
"processing_success": [
{
"input_file": "C:\\conform\\input\\pal1.bmp",
"output_file": "C:\\conform\\output\\01_engine_success\\pal1.bmp",
"engine_status": "OK(0)",
"max_memory_used_in_gib": 0.11124420166015625,
"elapsed_time": 0.9149298667907715,
"success": true
},
{
"input_file": "C:\\conform\\input\\Set-08-016599.pdf",
"output_file": "C:\\conform\\output\\02_conform_engine_success\\Set-08-016599.pdf",
"engine_status": "GeneralFail(-1)",
"engine_GW2FileErrorMsg": "[FAILURE_LOG_SEM_FONTS_0021897368] Key /FirstChar must be present in a Type 1 Font dictionary other than for standard 14. fonts.",
"engine_conform_fast_status": "GeneralFail(-1)",
"engine_conform_fast_GW2FileErrorMsg": "[FAILURE_LOG_SEM_FONTS_0021897368] Key /FirstChar must be present in a Type 1 Font dictionary other than for standard 14. fonts.",
"engine_conform_cautious_status": "OK(0)",
"max_memory_used_in_gib": 0.22198104858398438,
"elapsed_time": 1.8940067291259766,
"success": true
}
],
"processing_failure": [
{
"input_file": "C:\\conform\\input\\pal1_corrupt.bmp",
"engine_status": "FileTypeUnknown(-7)",
"engine_GW2FileErrorMsg": "Unable to determine file type",
"engine_conform_fast_status": "PdfFastProcessError()",
"engine_conform_cautious_status": "PdfExtractionError(Unable to extract content from PDF: 'C:\\conform\\input\\pal1_corrupt.bmp')",
"exit_code": 0,
"timed_out": false,
"out_of_memory": false,
"max_memory_used_in_gib": 0.13513565063476562,
"elapsed_time": 0.8690056800842285,
"success": false
},
{
"input_file": "C:\\conform\\input\\Straw120556398.pdf",
"timed_out": false,
"out_of_memory": true,
"max_memory_used_in_gib": 4.3571624755859375,
"elapsed_time": 41.976775884628296,
"exception": "MemoryError()",
"success": false
}
]
}