Langkau ke kandungan utama

Panduan pengguna

Glasswall Conform direka untuk mempraproses fail PDF agar memenuhi piawaian bagi pemprosesan selanjutnya. Ia mengekstrak dan membina semula kandungan visual dan harus digunakan bersama Glasswall Embedded Engine untuk perlindungan Content Disarm and Reconstruction (CDR) yang lengkap.

Dokumen ini menyediakan arahan tentang penggunaan Conform untuk membina semula dokumen PDF, bersama beberapa contoh untuk memanggil alat baris perintah.


Pemasangan

Conform dipasang sebagai perintah seluruh sistem yang boleh diakses daripada terminal anda.

Setelah dipasang, perintah glasswall_conform akan tersedia pada PATH sistem anda. Anda mungkin perlu memulakan semula sesi terminal anda agar perubahan ini berkuat kuasa.

Windows

Conform untuk Windows diedarkan sebagai pemasang .exe. Ia dipasang ke C:\Program Files (x86)\Glasswall Conform dan menambah folder ini ke PATH sistem anda.

Pasang Conform dengan menjalankan pemasang dan mengikuti arahan:

.\glasswall-conform-1.1.0.exe

Atau pasangkannya secara senyap untuk automasi atau persekitaran CI:

.\glasswall-conform-1.1.0.exe /VERYSILENT

Linux

Conform untuk Linux diedarkan sebagai pakej .rpm dan .deb.

Kedua-duanya memasang fail ke /opt/glasswall_conform dan mencipta pautan simbolik dalam /usr/local/bin untuk membolehkan menjalankan glasswall_conform dari baris perintah.

RPM (cth. Rocky 9, Rocky 8)

sudo yum -y install ./glasswall_conform-1.1.0-1.x86_64.rpm

DEB (cth. Ubuntu 24.04, Ubuntu 22.04)

sudo apt-get -y install ./glasswall-conform_1.1.0_amd64.deb

Persediaan

Sebelum memanggil glasswall_conform, pastikan persekitaran anda disediakan dengan betul.

Untuk mod yang menggunakan Embedded Engine, direktori yang dihantar kepada --library-directory mesti mengandungi binari Embedded Engine. Conform mengesahkan perkara ini semasa permulaan dan berhenti dengan mesej ringkas jika binari tersebut tidak hadir.

Linux

Untuk mod pemprosesan yang menggunakan Embedded Engine, LD_LIBRARY_PATH mesti ditetapkan supaya merangkumi direktori yang mengandungi Embedded Engine. Contohnya, jika Embedded Engine berada pada laluan /home/azureuser/glasswall/Release-16.2.0 anda boleh mengubah suai LD_LIBRARY_PATH buat sementara waktu:

export LD_LIBRARY_PATH=/home/azureuser/glasswall/Release-16.2.0:$LD_LIBRARY_PATH

Ubuntu

Pada sistem berasaskan Ubuntu, jika anda menemui mesej ralat libgthread-2.0.so.0: cannot open shared object file: No such file or directory, anda boleh menyelesaikannya dengan memasang pakej yang diperlukan menggunakan arahan berikut:

DEBIAN_FRONTEND=noninteractive && apt update && apt install -y libglib2.0-0

Windows

Kami mengesyorkan pemasangan dependensi Windows menggunakan chocolatey.

Untuk semua mod pemprosesan, Microsoft Visual C++ Redistributable mesti dipasang.

Untuk mod pemprosesan yang menggunakan Embedded Engine:

  1. PATH mesti ditetapkan untuk memasukkan direktori yang mengandungi Embedded Engine. Sebagai contoh, jika Embedded Engine berada pada laluan C:/glasswall/Release-16.2.0 anda boleh mengubah suai PATH buat sementara waktu:

    SET "PATH=%PATH%;C:/glasswall/Release-16.2.0"
  2. OpenSSL light atau OpenSSL mesti dipasang.

Contoh pemasangan docker Windows bagi vcredist140 dan openssl.light menggunakan chocolatey:
# 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;

Pelesenan

Glasswall Conform memerlukan lesen yang sah untuk beroperasi. Untuk mendapatkan fail lesen, hubungi [email protected].

Argumen --license boleh digunakan dalam semua mod pemprosesan untuk menentukan sama ada laluan terus ke fail lesen, atau laluan ke direktori yang mengandungi fail gwkey.lic.

  • Mod enjin (engine, engine_memory): --license adalah pilihan. Jika tidak dinyatakan, Conform akan mencari secara automatik dalam --library-directory untuk fail gwkey.lic. Jika fail ditemui, ia akan digunakan sebagai lesen. Jika tidak ditemui, ralat akan dibangkitkan.
  • Mod Conform sahaja (conform_only, conform_only_memory): --license diperlukan, kerana tiada direktori pustaka untuk dicari.

Jika lesen tiada, tidak sah atau tidak mengandungi entitlement yang diperlukan, Conform akan keluar dengan kod ralat 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.

Mod pemprosesan

Conform dijalankan dari baris arahan dan menawarkan beberapa mod pemprosesan untuk memproses fail. Apabila memanggil glasswall_conform, argumen kedudukan pertama menentukan mod pemprosesan. Mod pemprosesan yang tersedia ialah:

  • engine: Melindungi fail menggunakan Engine. Fail yang tidak mematuhi akan dibina semula oleh Conform dan kemudian diproses oleh Engine.
  • conform_only: Membina semula fail menggunakan Conform sahaja, tanpa menyediakan perlindungan CDR.
  • engine_memory: Menerima fail yang dikodkan base64 melalui input standard. Melindungi satu fail dalam memori menggunakan Engine. Jika fail tersebut tidak mematuhi, ia dibina semula menggunakan Conform dan kemudian diproses oleh Engine. Fail yang telah diproses dikembalikan melalui output standard, atau ralat dikembalikan melalui standard error.
  • conform_only_memory: Menerima fail berkod base64 melalui input standard. Membina semula satu fail menggunakan Conform sahaja, tanpa menyediakan perlindungan CDR. Fail yang dibina semula dikembalikan melalui output standard, atau ralat dikembalikan melalui standard error.

Untuk memaparkan mod pemprosesan yang tersedia:

glasswall_conform -h

engine

Mod pemprosesan ini ialah lalai yang dimaksudkan dan membersihkan fail menggunakan teknologi Glasswall CDR. Ia memerlukan akses kepada Embedded Engine dan lesen yang sah.

Untuk contoh memanggil mod pemprosesan ini, lihat: Perlindungan hujung ke hujung.

Fail yang diproses diisih ke dalam satu daripada tiga subdirektori output:

  1. 01_engine_success: Fail berjaya diproses oleh Embedded Engine tanpa perlu dibina semula oleh Conform.
  2. 02_conform_engine_success: Fail PDF yang pada mulanya tidak dapat diproses oleh Embedded Engine, tetapi dibina semula oleh Conform dan kemudian berjaya diproses oleh Embedded Engine.
  3. 03_failure: Fail yang gagal diproses menggunakan kedua-dua Embedded Engine dan Conform, atau yang mengandungi kandungan yang telah ditetapkan sebagai tidak dibenarkan menggunakan policy pengurusan kandungan tersuai.

Untuk memaparkan argumen baris perintah bagi mod pemprosesan engine:

glasswall_conform engine -h

conform_only

Mod pemprosesan ini membina semula fail tanpa menggunakan Embedded Engine. Ia tidak menyediakan perlindungan CDR.

Untuk contoh memanggil mod pemprosesan ini, lihat: Membina semula fail tanpa perlindungan CDR

Fail yang diproses diisih ke dalam satu daripada dua subdirektori output:

  1. 01_conform_success: Fail berjaya dibina semula oleh Conform.
  2. 02_failure: Fail yang gagal dibina semula oleh Conform.

Untuk memaparkan argumen baris perintah bagi mod pemprosesan conform_only:

glasswall_conform conform_only -h

engine_memory

Mod ini menerima fail berkod base64 melalui input standard dan memprosesnya menggunakan Embedded Engine. Jika fail tidak mematuhi format, ia dibina semula oleh Conform, kemudian diproses oleh Engine. Output akhir dikembalikan melalui output standard, atau ralat dikembalikan melalui ralat standard. Tiada fail ditulis ke cakera.

Mod ini sesuai untuk penyepaduan dengan sistem yang menyimpan fail dalam memori dan tidak bergantung pada input atau output sistem fail.

Untuk contoh memanggil mod pemprosesan ini, lihat: Memproses fail dalam memori tanpa membaca dari atau menulis ke cakera.

Untuk memaparkan argumen baris perintah bagi mod pemprosesan engine_memory:

glasswall_conform engine_memory -h

Argumen pilihan --file-name boleh digunakan untuk menentukan nama fail dalam memori. Ini digunakan semasa menulis log dan ringkasan pascapemprosesan, dan lalai kepada 8 aksara pertama data berkod base64 jika tidak ditentukan.

conform_only_memory

Mod ini menerima fail berkod base64 melalui input standard dan membinanya semula menggunakan Conform sahaja (tanpa perlindungan CDR). Fail yang dibina semula dikembalikan melalui output standard, atau ralat dikembalikan melalui ralat standard. Tiada fail ditulis ke cakera.

Untuk contoh memanggil mod pemprosesan ini, lihat: Memproses fail dalam memori tanpa membaca dari atau menulis ke cakera.

Untuk memaparkan argumen baris perintah bagi mod pemprosesan conform_only_memory:

glasswall_conform conform_only_memory -h

Pengujian

Satu set data fail ujian PDF untuk menilai Conform tersedia atas permintaan. Sila hubungi kami untuk meminta akses kepada fail ujian melalui Kiteworks.


Contoh


Perlindungan hujung ke hujung

Contoh ini menunjukkan penggunaan mod pemprosesan engine pada tahap paling asas.

glasswall_conform engine -i /home/azureuser/input_files -o /home/azureuser/output_files -l /home/azureuser/glasswall/Release-16.2.0

Contoh direktori input:

/home/azureuser/input_files
conforming_docx.docx
conforming_pdf.pdf
corrupt_docx.docx
nonconforming_pdf.pdf
unsupported_filetype.txt

Contoh direktori output selepas pemprosesan:

/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

Ambil perhatian bahawa nama subdirektori boleh disesuaikan menggunakan argumen berikut:

  • --engine-success-path: Pilihan. Nama subdirektori output untuk fail yang berjaya diproses oleh Embedded Engine tanpa perlu pembinaan semula oleh Conform. Lalai 01_engine_success
  • --conform-success-path: Pilihan. Nama subdirektori output untuk fail yang pada awalnya tidak dapat diproses oleh Embedded Engine, tetapi dibina semula oleh Conform dan kemudian berjaya diproses oleh Embedded Engine. Lalai 02_conform_engine_success
  • --failure-path: Pilihan. Nama subdirektori output untuk fail yang gagal diproses menggunakan kedua-dua Embedded Engine dan Conform. Lalai 03_failure

Jika dikehendaki supaya semua fail yang berjaya dilindungi ditulis ke direktori output yang sama, tanpa mengira sama ada Conform digunakan untuk membina semula fail tersebut atau tidak, anda boleh menentukan supaya fail ditulis ke laluan subdirektori kejayaan yang sama. Contohnya:

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

Contoh output terminal yang dipendekkan selepas pemprosesan:

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

Membina semula fail tanpa perlindungan CDR

Mod pemprosesan conform_only tidak menyediakan perlindungan CDR, dan memerlukan direktori input -i, direktori output -o serta laluan --license. Lihat conform_only.

glasswall_conform conform_only -i /home/azureuser/input_files -o /home/azureuser/output_files --license /home/azureuser/gwkey.lic

Memproses fail dalam memori tanpa membaca daripada atau menulis ke cakera

Mod pemprosesan engine_memory dan conform_only_memory boleh digunakan untuk memproses fail dalam memori tanpa penggunaan I/O.

Jika pemprosesan berjaya, fail output yang dikodkan base64 akan dikembalikan melalui output standard. Jika ralat berlaku semasa pemprosesan, mesej ralat dan ringkasan pascapemprosesan akan ditulis ke ralat standard.

Contoh ralat standard untuk kegagalan tamat masa:

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}]}

Contoh penggunaan asas:

Salurkan rentetan berkod base64 bagi fail PDF dalam memori terus ke dalam glasswall_conform

echo "U29tZUJhc2U2NERhdGE=" | glasswall_conform.exe engine_memory -l "C:/azure/sdk.editor/2.1394.0" --file-name "SomeBase64Data"

Atau menggunakan Python melalui subprocess

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)

Begitu juga, mod conform_only_memory boleh digunakan dengan menggantikan engine_memory dalam contoh di atas, mengabaikan argumen -l dan menentukan --license kerana ia diperlukan untuk mod ini.


Mod pantas dan mod berhati-hati

Mod pantas ialah mod pemprosesan lalai dalam Conform. Ia menawarkan kelajuan pemprosesan terpantas dan penampilan visual terbaik untuk fail PDF, tetapi mungkin tidak sesuai untuk senario yang memerlukan pematuhan yang sangat ketat terhadap spesifikasi PDF.

Jika mod pantas dinyahdayakan atau tidak dapat memproses fail, Conform secara automatik beralih kepada mod berhati-hati. Mod ini mengutamakan pematuhan dan pengurangan risiko dengan menggantikan fon terbenam, yang membantu mengurangkan isu yang berkaitan dengan fon tersuai atau tidak diketahui. Mod berhati-hati mungkin menyebabkan kesetiaan visual yang lebih rendah, seperti imej yang merosot atau hilang, saiz fon yang tidak konsisten, atau teks yang hilang.

  • Menyahdayakan fast mode hanya disyorkan apabila pematuhan yang sangat ketat terhadap piawaian PDF adalah penting, walaupun dengan pengorbanan kesetiaan visual.
  • Menyahdayakan cautious mode hanya disyorkan apabila mengekalkan fon terbenam adalah penting, atau apabila penampilan visual lebih penting daripada keupayaan Conform untuk berjaya memproses julat PDF yang lebih luas.

Fast mode boleh dinyahdayakan menggunakan argumen baris perintah pilihan --disable-fast-mode. Cautious mode boleh dinyahdayakan menggunakan argumen baris perintah pilihan --disable-cautious-mode.

Apabila Conform berjaya memproses fail menggunakan fast mode:

  • Kelajuan pemprosesan terpantas.
  • Penampilan visual terbaik.
  • Fon terbenam tersuai tidak digantikan.
  • Mungkin tidak sesuai untuk senario yang memerlukan pematuhan yang sangat ketat terhadap piawaian PDF.

Apabila Conform menggunakan fallback cautious mode:

  • Kelajuan pemprosesan lebih perlahan.
  • In a small number of cases, may result in reduced visual appearance, such as:
    • Imej dan grafik merosot atau hilang.
    • Perbezaan dalam penampilan teks (cth. saiz, gaya fon, atau jarak).
    • Teks hilang apabila fon terbenam yang tidak diketahui sedang digunakan.
  • Memproses PDF dengan pematuhan yang lebih ketat terhadap spesifikasi.
  • Menggantikan fon terbenam tersuai dengan fon yang diketahui selamat.

Fungsi Glasswall Python Wrapper

Dalam mod pemprosesan engine, fungsi protect_file daripada Glasswall Python Wrapper digunakan secara lalai untuk memproses fail menggunakan Embedded Engine. Ini boleh diubah menggunakan argumen baris perintah pilihan -f.

policy pengurusan kandungan sanitise lalai digunakan jika fail policy tidak ditentukan menggunakan argumen baris perintah pilihan -c.

Argumen baris perintah -l yang diperlukan hendaklah menunjuk kepada direktori yang mengandungi Embedded Engine.

Argumen berikut berkaitan dengan 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.

Contoh:

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

Multipemprosesan

Semua mod pemprosesan memanfaatkan GlasswallProcessManager milik Glasswall Python Wrapper untuk memproses fail secara serentak dengan cekap.

Argumen berikut berkaitan dengan multiprocessing:

  -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.

Contoh:

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

Pengelogan

Tahap pengelogan lalai untuk Conform dan Glasswall Python Wrapper ialah INFO. Argumen berikut berkaitan dengan pengelogan:

  --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.

Untuk menyekat kebanyakan pengelogan:

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

Sesuaikan kadar pengendalian kandungan

Bahagian ini hanya terpakai apabila fast mode dinyahdayakan.

Secara lalai, Conform menjana fail output apabila boleh, walaupun hanya sebahagian daripada kandungan dokumen asal berjaya dikendalikan. Tingkah laku ini mungkin tidak sentiasa diingini, dan boleh disesuaikan untuk jenis kandungan yang berbeza dalam setiap dokumen.

Conform menggunakan "tekaan terbaik" apabila mengendalikan kandungan teks yang cacat, rosak atau tidak disokong untuk memastikan sebanyak mungkin teks dipindahkan daripada dokumen asal ke dokumen yang telah dikonformkan. Sebagai contoh, jika warna stroke teks adalah cacat atau dalam format warna yang tidak disokong, teks tersebut dikekalkan dalam dokumen output, dengan warna stroke ditetapkan kepada hitam secara lalai.

Pendekatan "tekaan terbaik" ini boleh menghasilkan teks yang kelihatan serupa dengan yang asal, atau dalam sesetengah kes, teks yang tidak kelihatan tetapi masih wujud dalam dokumen output. Oleh sebab kami tidak dapat menjamin bahawa tekaan terbaik kami akan mengendalikan teks dengan cara yang sama seperti dalam dokumen asal, kadar pengendalian mencerminkan perkara ini sebagai kandungan yang belum dikendalikan sepenuhnya. Oleh itu, kadar pengendalian yang rendah untuk teks tidak semestinya menunjukkan bahawa dokumen akan kelihatan berbeza secara visual apabila tekaan terbaik digunakan.

Terdapat tiga argumen yang tersedia untuk menetapkan kadar kejayaan minimum apabila mengendalikan kandungan:

  --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.

Jika nilai kadar minimum pengendalian kandungan tidak dipenuhi, maka pemprosesan bagi fail tersebut akan dianggap gagal dan fail output tidak akan ditulis.


Penanda air

Penanda air dinyahdayakan secara lalai, tetapi boleh didayakan menggunakan argumen --watermark. Teks akan ditambah dengan saiz fon 12 dalam warna kelabu gelap separa telus. Penanda air biasanya diletakkan di bahagian kanan atas dokumen, namun bergantung pada putaran yang telah digunakan pada halaman, orientasinya mungkin berbeza. Panjang maksimum teks untuk penanda air pada masa ini ialah 256 aksara.

  --watermark WATERMARK
Optional. Adds a watermark to each page of the reconstructed document. Default '' (disabled).

Contoh:

glasswall_conform engine -i /home/azureuser/input_files -o /home/azureuser/output_files -l /home/azureuser/glasswall/Release-16.2.0 --watermark "Glasswall Conform"

Penindasan CID

Bahagian ini hanya terpakai apabila fast mode dinyahdayakan.

Dalam PDF, sesetengah fon menggunakan sistem yang dipanggil CID (Character Identifier) untuk mengurus set aksara yang besar. Apabila membina PDF baharu, jika alat menemui aksara yang tidak dapat diproses, ia menggantikannya dengan aksara tanda soal lalai (?). Anda boleh melaraskan cara CID yang tidak boleh diproses diwakili dalam PDF anda menggunakan argumen --suppress-cid:

  --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 '■'.

Contoh:

glasswall_conform engine -i /home/azureuser/input_files -o /home/azureuser/output_files -l /home/azureuser/glasswall/Release-16.2.0 --suppress-cid "?"

Penggantian fon

Bahagian ini hanya terpakai apabila fast mode dinyahdayakan.

Conform menyokong varian tebal, italik dan tebal italik bagi fon Type1 asas 14 dan fon Cambria. Conform juga menyokong beberapa fon tersuai.

Fon Type1 asas 14 ialah:

  • Courier, Courier-Bold, Courier-Oblique, Courier-BoldOblique
  • Helvetica, Helvetica-Bold, Helvetica-Oblique, Helvetica-BoldOblique
  • Times-Roman, Times-Bold, Times-Italic, Times-BoldItalic
  • Symbol
  • ZapfDingbats

Fon terbenam yang tidak disokong mungkin digantikan dengan fon Cambria. Jika Cambria tidak menyokong glif daripada fon terbenam, aksara tersebut akan ditindas. Untuk maklumat lanjut tentang perkara ini, lihat Penindasan CID.

Secara lalai, beberapa fon sans serif terbenam yang biasa digunakan digantikan dengan Helvetica dan bukannya Cambria untuk keserupaan visual. Ini, dan ciri penggantian fon lain, boleh diubah suai menggunakan argumen ini:

  --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.

Contoh:

glasswall_conform engine -i /home/azureuser/input_files -o /home/azureuser/output_files -l /home/azureuser/glasswall/Release-16.2.0 --disable-custom-fonts

Penapisan kemasukan dan pengecualian fail

Conform membenarkan kawalan tambahan ke atas fail mana dalam direktori input yang diproses dengan menggunakan penapis kemasukan dan pengecualian. Penapis ini membolehkan anda menentukan fail yang hendak diproses atau diabaikan menggunakan wildcard gaya shell Unix asas secara terus daripada baris arahan. Jika sesuatu fail sepadan dengan kedua-dua peraturan kemasukan dan pengecualian, fail itu akan dikecualikan.

Secara lalai, jika argumen --include-files dan --exclude-files ditinggalkan, Conform akan memproses semua fail yang terdapat dalam direktori input.

Argumen berikut berkaitan dengan kemasukan dan pengecualian fail:

  --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.

Jadual berikut menunjukkan contoh beberapa corak yang boleh digunakan:

CorakMaksudContohSepadanTidak Sepadan
*Sepadan dengan semua*.pdffile.pdf, report.pdffile.docx
?Sepadan dengan mana-mana satu aksarafile_?.pdffile_1.pdf, file_A.pdffile_10.pdf
[seq]Sepadan dengan mana-mana aksara dalam seqfile_[AB].pdffile_A.pdf, file_B.pdffile_C.pdf
[!seq]Sepadan dengan mana-mana aksara yang bukan dalam seqfile_[!AB].pdffile_C.pdf, file_D.pdffile_A.pdf, file_B.pdf

Pertimbangan kepekaan huruf besar-kecil

Nama fail adalah peka huruf besar-kecil pada Linux tetapi tidak peka huruf besar-kecil pada Windows. Ini mempengaruhi cara laluan fail atau corak ditafsirkan merentas sistem pengendalian yang berbeza.

  • Pada Linux, report.pdf dan Report.pdf dianggap sebagai fail yang berbeza.
  • Pada Windows, kedua-duanya dianggap sebagai fail yang sama.

Syor: Untuk memastikan konsistensi merentas platform, gunakan penggunaan huruf besar-kecil yang konsisten dalam nama fail dan corak. Jika bekerja merentas berbilang persekitaran, pertimbangkan untuk menggunakan corak kad bebas (*) jika sesuai bagi mengelakkan ketidakpadanan.

Mengendalikan kemasukan fail tunggal

Jika menentukan satu fail dengan --include-files, ambil perhatian bahawa Conform terlebih dahulu menyemak sama ada nilai yang diberikan ialah fail pada cakera, dan jika tidak maka nilai tersebut dianggap sebagai corak.

Isu berpotensi: Jika pengguna menentukan:

--include-files "/home/azureuser/input_files/first.pdf"

Conform akan melihat bahawa /home/azureuser/input_files/first.pdf wujud sebagai fail, dan cuba membacanya sebagai fail senarai yang mengandungi berbilang laluan atau corak.

Penyelesaian: Untuk menunjukkan secara jelas bahawa ini ialah corak bagi satu fail, tambahkan titik koma di hujung:

--include-files "/home/azureuser/input_files/first.pdf;"

Ini memastikan bahawa Conform menganggap laluan tersebut sebagai corak dan bukannya fail senarai.

Sertakan fail PDF tertentu

Untuk memproses hanya PDF dengan "report" dalam nama fail:

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"

Hasil: Hanya fail seperti annual_report.pdf, summary_report_2023.pdf, dan sebagainya, diproses.

Kecualikan fail PDF tertentu

Untuk memproses semua PDF kecuali yang mengandungi "draft" dalam nama:

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"

Hasil: Semua PDF diproses, kecuali fail seperti proposal_draft.pdf dan internal_draft_v2.pdf.

Kecualikan keseluruhan direktori

Untuk mengecualikan semua fail di dalam /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/*"

Hasil: Semua yang berada di dalam /home/azureuser/input_files/archive/ dilangkau.

Sertakan dan kecualikan bersama-sama

Jika sesuatu fail sepadan dengan kedua-dua peraturan penyertaan dan pengecualian, ia akan dikecualikan.

Untuk memproses semua fail daripada SET_03, tetapi mengecualikan fail yang mengandungi "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*"

Hasil: Hanya fail daripada SET_03/ diproses, kecuali mana-mana yang mengandungi "error_log" dalam nama fail.

Menggunakan fail untuk senarai besar

Untuk penapisan yang lebih kompleks, anda boleh menyediakan fail yang mengandungi berbilang corak atau laluan fail mutlak dan bukannya menentukannya secara langsung.

Contoh menggunakan fail senarai penyertaan:

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"

Contoh include_list.txt:

*/SET_03/*.pdf
*reports_2023_*.pdf
/home/azureuser/input_files/SET_02/splat.pdf

Hasil: Memproses hanya fail daripada SET_03/, fail yang mengandungi reports_2023_, dan fail khusus /home/azureuser/input_files/SET_02/splat.pdf.


Struktur fail output dan pengkategorian

Struktur direktori untuk fail output boleh disesuaikan bagi kedua-dua mod pemprosesan engine dan conform_only menggunakan argumen baris perintah --output-structure.

  --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.

Jika diabaikan, struktur categorised lalai digunakan. Pilihan tambahan tersedia untuk menyesuaikan nama subdirektori kategori:

  • --engine-success-path: Pilihan. Nama subdirektori output untuk fail yang berjaya diproses oleh Embedded Engine tanpa perlu pembinaan semula oleh Conform. Lalai 01_engine_success
  • --conform-success-path: Pilihan. Nama subdirektori output untuk fail yang pada awalnya tidak dapat diproses oleh Embedded Engine, tetapi dibina semula oleh Conform dan kemudian berjaya diproses oleh Embedded Engine. Lalai 02_conform_engine_success
  • --failure-path: Pilihan. Nama subdirektori output untuk fail yang gagal diproses menggunakan kedua-dua Embedded Engine dan Conform. Lalai 03_failure

Contoh struktur output categorised

glasswall_conform engine -i /home/azureuser/input_files -o /home/azureuser/output_files -l /home/azureuser/glasswall/Release-16.2.0

Contoh direktori input:

/home/azureuser/input_files
conforming_docx.docx
conforming_pdf.pdf
corrupt_docx.docx
nonconforming_pdf.pdf
unsupported_filetype.txt

Contoh direktori output selepas pemprosesan:

/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

Apabila menggunakan struktur output categorised, jika dikehendaki supaya semua fail yang berjaya dilindungi ditulis ke direktori output yang sama, tanpa mengira sama ada Conform digunakan untuk membina semula fail tersebut atau tidak, anda boleh menentukan supaya fail ditulis ke laluan subdirektori kejayaan yang sama. Contohnya:

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

Contoh struktur output 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

Contoh direktori input:

/home/azureuser/input_files
conforming_docx.docx
conforming_pdf.pdf
corrupt_docx.docx
nonconforming_pdf.pdf
unsupported_filetype.txt

Contoh direktori output selepas pemprosesan:

/home/azureuser/output_files
conforming_docx.docx
conforming_pdf.pdf
nonconforming_pdf.pdf

Ringkasan pascapemprosesan

Secara lalai, satu ringkasan ditulis selepas Conform selesai memproses fail. Ringkasan ini memberikan maklumat terperinci seperti status pemulangan, masa pemprosesan dan penggunaan memori bagi setiap fail. Argumen --summary-verbosity mengawal fail mana yang disertakan dalam ringkasan. Tetapan ini adalah bebas daripada tahap pengelogan dan tidak menjejaskan output log terperinci.

Pilihan yang tersedia

  • all (lalai) - Termasuk kedua-dua fail yang berjaya diproses dan fail yang gagal.
  • failure - Termasuk hanya fail yang gagal.
  • success - Termasuk hanya fail yang berjaya diproses.
  • none - Menyahdayakan output ringkasan sepenuhnya.

Argumen --summary-path boleh digunakan untuk menulis ringkasan ke cakera sebagai fail JSON dan bukannya hanya memaparkannya dalam terminal.

Contoh untuk memasukkan hanya fail yang gagal dalam output ringkasan:

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

Contoh untuk menyahdayakan output ringkasan sepenuhnya:

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

Contoh output JSON ringkasan (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
}
]
}