ข้ามไปยังเนื้อหาหลัก

คู่มือผู้ใช้

Glasswall Conform ได้รับการออกแบบมาเพื่อประมวลผลไฟล์ PDF ล่วงหน้าให้เป็นไปตามมาตรฐานสำหรับการประมวลผลต่อไป โดยจะดึงและสร้างเนื้อหาภาพขึ้นใหม่ และควรใช้งานร่วมกับ Glasswall Embedded Engine เพื่อการป้องกัน Content Disarm and Reconstruction (CDR) ที่สมบูรณ์

เอกสารนี้มีคำแนะนำเกี่ยวกับการใช้ Conform เพื่อสร้างเอกสาร PDF ขึ้นใหม่ พร้อมด้วยตัวอย่างหลายรายการสำหรับการเรียกใช้เครื่องมือบรรทัดคำสั่ง


การติดตั้ง

Conform ถูกติดตั้งเป็นคำสั่งระดับระบบที่สามารถเข้าถึงได้จากเทอร์มินัลของคุณ

เมื่อติดตั้งแล้ว คำสั่ง glasswall_conform จะพร้อมใช้งานบน PATH ของระบบของคุณ คุณอาจต้องเริ่มเซสชันเทอร์มินัลใหม่เพื่อให้การเปลี่ยนแปลงนี้มีผล

Windows

Conform สำหรับ Windows แจกจ่ายในรูปแบบตัวติดตั้ง .exe โดยจะติดตั้งไปที่ C:\Program Files (x86)\Glasswall Conform และเพิ่มโฟลเดอร์นี้ไปยัง PATH ของระบบของคุณ

ติดตั้ง Conform โดยเรียกใช้ตัวติดตั้งและทำตามคำแนะนำ:

.\glasswall-conform-1.1.0.exe

หรือจะติดตั้งแบบเงียบสำหรับสภาพแวดล้อมอัตโนมัติหรือ CI ก็ได้:

.\glasswall-conform-1.1.0.exe /VERYSILENT

Linux

Conform สำหรับ Linux แจกจ่ายทั้งในรูปแบบแพ็กเกจ .rpm และ .deb

ทั้งสองแบบจะติดตั้งไฟล์ไปที่ /opt/glasswall_conform และสร้าง symbolic link ใน /usr/local/bin เพื่อให้สามารถเรียกใช้ glasswall_conform จากบรรทัดคำสั่งได้

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:

  1. ต้องตั้งค่า PATH ให้รวมไดเรกทอรีที่มี Embedded Engine อยู่ด้วย ตัวอย่างเช่น หาก Embedded Engine อยู่ที่พาธ C:/glasswall/Release-16.2.0 คุณสามารถแก้ไข PATH ชั่วคราวได้ดังนี้:

    SET "PATH=%PATH%;C:/glasswall/Release-16.2.0"
  2. ต้องติดตั้ง OpenSSL light หรือ OpenSSL

ตัวอย่างการติดตั้ง vcredist140 และ openssl.light บน Windows docker โดยใช้ 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;

การให้สิทธิ์การใช้งาน

Glasswall Conform ต้องใช้ไลเซนส์ที่ถูกต้องจึงจะทำงานได้ หากต้องการรับไฟล์ไลเซนส์ โปรดติดต่อ [email protected].

อาร์กิวเมนต์ --license สามารถใช้ได้ในทุกโหมดการประมวลผลเพื่อระบุได้ทั้งพาธตรงไปยังไฟล์ไลเซนส์ หรือพาธไปยังไดเรกทอรีที่มีไฟล์ gwkey.lic

  • Engine modes (engine, engine_memory): --license is optional. If not specified, Conform will automatically search the --library-directory for a gwkey.lic file. If one is found, it is used as the license. If not found, an error is raised.
  • โหมด Conform-only (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: สร้างไฟล์ใหม่โดยใช้ Conform เท่านั้น โดยไม่มีการป้องกัน CDR
  • engine_memory: รับไฟล์ที่เข้ารหัสแบบ base64 ผ่าน standard input ปกป้องไฟล์เดียวในหน่วยความจำโดยใช้ Engine หากไฟล์ไม่เป็นไปตามข้อกำหนด ไฟล์จะถูกสร้างใหม่โดยใช้ Conform แล้วจึงประมวลผลด้วย Engine ไฟล์ที่ประมวลผลแล้วจะถูกส่งกลับผ่าน standard output หรือจะส่งข้อผิดพลาดกลับผ่าน standard error
  • conform_only_memory: รับไฟล์ที่เข้ารหัสแบบ base64 ผ่าน standard input สร้างไฟล์เดียวขึ้นใหม่โดยใช้ Conform เท่านั้น โดยไม่มีการป้องกัน CDR ไฟล์ที่สร้างขึ้นใหม่จะถูกส่งกลับผ่าน standard output หรือจะส่งข้อผิดพลาดกลับผ่าน standard error

หากต้องการแสดงโหมดการประมวลผลที่พร้อมใช้งาน:

glasswall_conform -h

engine

โหมดการประมวลผลนี้เป็นค่าเริ่มต้นที่ตั้งใจไว้ และทำความสะอาดไฟล์โดยใช้เทคโนโลยี Glasswall CDR โดยต้องมีสิทธิ์เข้าถึง Embedded Engine และมี licence ที่ถูกต้อง

สำหรับตัวอย่างการเรียกใช้โหมดการประมวลผลนี้ โปรดดู: การป้องกันแบบต้นทางถึงปลายทาง.

ไฟล์ที่ประมวลผลแล้วจะถูกจัดเรียงไปยังหนึ่งในสามไดเรกทอรีย่อยของเอาต์พุต:

  1. 01_engine_success: ไฟล์ที่ประมวลผลสำเร็จโดย Embedded Engine โดยไม่จำเป็นต้องสร้างใหม่ด้วย Conform
  2. 02_conform_engine_success: ไฟล์ PDF ที่ในตอนแรกไม่สามารถประมวลผลโดย Embedded Engine ได้ แต่ถูกสร้างใหม่ด้วย Conform และจากนั้นประมวลผลสำเร็จโดย Embedded Engine
  3. 03_failure: ไฟล์ที่ประมวลผลไม่สำเร็จทั้งด้วย Embedded Engine และ Conform หรือมีเนื้อหาที่ถูกตั้งค่าให้ไม่อนุญาตโดยใช้ custom content management policy

หากต้องการแสดงอาร์กิวเมนต์บรรทัดคำสั่งสำหรับโหมดการประมวลผล engine:

glasswall_conform engine -h

conform_only

โหมดการประมวลผลนี้สร้างไฟล์ขึ้นใหม่โดยไม่ใช้ Embedded Engine โดยไม่ให้การป้องกัน CDR

สำหรับตัวอย่างการเรียกใช้โหมดการประมวลผลนี้ โปรดดู: การสร้างไฟล์ขึ้นใหม่โดยไม่มีการป้องกัน CDR

ไฟล์ที่ประมวลผลแล้วจะถูกจัดเรียงไปยังหนึ่งในสองไดเรกทอรีย่อยของเอาต์พุต:

  1. 01_conform_success: ไฟล์ที่ถูกสร้างใหม่โดย Conform สำเร็จ
  2. 02_failure: ไฟล์ที่ Conform ไม่สามารถสร้างใหม่ได้

หากต้องการแสดงอาร์กิวเมนต์บรรทัดคำสั่งสำหรับโหมดการประมวลผล conform_only:

glasswall_conform conform_only -h

engine_memory

โหมดนี้รับไฟล์ที่เข้ารหัสแบบ base64 ผ่าน standard input และประมวลผลโดยใช้ Embedded Engine หากไฟล์ไม่เป็นไปตามข้อกำหนด ไฟล์จะถูกสร้างใหม่โดย Conform จากนั้นจึงประมวลผลโดย Engine เอาต์พุตสุดท้ายจะถูกส่งกลับผ่าน standard output หรือจะส่งคืนข้อผิดพลาดผ่าน standard error โดยจะไม่มีการเขียนไฟล์ลงดิสก์

โหมดนี้เหมาะอย่างยิ่งสำหรับการผสานรวมกับระบบที่เก็บไฟล์ไว้ในหน่วยความจำและไม่พึ่งพาการรับเข้าหรือส่งออกผ่าน filesystem

สำหรับตัวอย่างการเรียกใช้โหมดการประมวลผลนี้ โปรดดู: การประมวลผลไฟล์ในหน่วยความจำโดยไม่อ่านจากหรือเขียนลงดิสก์.

หากต้องการแสดงอาร์กิวเมนต์บรรทัดคำสั่งสำหรับโหมดการประมวลผล engine_memory:

glasswall_conform engine_memory -h

อาร์กิวเมนต์ทางเลือก --file-name สามารถใช้เพื่อระบุชื่อของไฟล์ในหน่วยความจำได้ โดยจะใช้เมื่อต้องเขียนล็อกและสรุปหลังการประมวลผล และหากไม่ได้ระบุไว้ จะใช้ค่าเริ่มต้นเป็นอักขระ 8 ตัวแรกของข้อมูลที่เข้ารหัสแบบ base64

conform_only_memory

โหมดนี้รับไฟล์ที่เข้ารหัสแบบ base64 ผ่าน standard input และสร้างใหม่โดยใช้ Conform เท่านั้น (โดยไม่มีการป้องกัน CDR) ไฟล์ที่สร้างใหม่จะถูกส่งกลับผ่าน standard output หรือจะส่งคืนข้อผิดพลาดผ่าน standard error โดยจะไม่มีการเขียนไฟล์ลงดิสก์

สำหรับตัวอย่างการเรียกใช้โหมดการประมวลผลนี้ โปรดดู: การประมวลผลไฟล์ในหน่วยความจำโดยไม่อ่านจากหรือเขียนลงดิสก์.

หากต้องการแสดงอาร์กิวเมนต์บรรทัดคำสั่งสำหรับโหมดการประมวลผล conform_only_memory:

glasswall_conform conform_only_memory -h

การทดสอบ

ชุดข้อมูลไฟล์ทดสอบ PDF สำหรับใช้ประเมิน Conform มีให้บริการเมื่อร้องขอ โปรดติดต่อเราเพื่อขอสิทธิ์เข้าถึงไฟล์ทดสอบผ่าน 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: ไม่บังคับ ชื่อไดเรกทอรีย่อยเอาต์พุตสำหรับไฟล์ที่ประมวลผลสำเร็จโดย Embedded Engine โดยไม่จำเป็นต้องสร้างใหม่ด้วย Conform ค่าเริ่มต้นคือ 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 จะถูกส่งกลับผ่าน standard output หากเกิดข้อผิดพลาดระหว่างการประมวลผล ข้อความแสดงข้อผิดพลาดและสรุปหลังการประมวลผลจะถูกเขียนไปยัง standard error

ตัวอย่าง standard error สำหรับความล้มเหลวจากการหมดเวลา:

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

ตัวอย่างการใช้งานพื้นฐาน:

ส่งสตริงที่เข้ารหัสแบบ base64 ของไฟล์ PDF ในหน่วยความจำเข้าไปยัง glasswall_conform โดยตรง

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

หรือใช้ Python ผ่าน 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)

ในทำนองเดียวกัน สามารถใช้โหมด 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 จะใช้ฟังก์ชัน protect_file จาก Glasswall Python Wrapper โดยค่าเริ่มต้นเพื่อประมวลผลไฟล์โดยใช้ Embedded Engine โดยสามารถเปลี่ยนแปลงได้ด้วยอาร์กิวเมนต์บรรทัดคำสั่งเพิ่มเติม -f

ระบบจะใช้ policy การจัดการเนื้อหา sanitise เริ่มต้น หากไม่ได้ระบุไฟล์ policy โดยใช้อาร์กิวเมนต์บรรทัดคำสั่งเพิ่มเติม -c

อาร์กิวเมนต์บรรทัดคำสั่ง -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

การประมวลผลหลายโปรเซส

โหมดการประมวลผลทั้งหมดใช้ GlasswallProcessManager ของ Glasswall Python Wrapper เพื่อประมวลผลไฟล์พร้อมกันอย่างมีประสิทธิภาพ

อาร์กิวเมนต์ต่อไปนี้เกี่ยวข้องกับการประมวลผลหลายโปรเซส:

  -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

การบันทึก日志

ระดับการบันทึก log เริ่มต้นสำหรับ Conform และ Glasswall Python Wrapper คือ INFO อาร์กิวเมนต์ต่อไปนี้เกี่ยวข้องกับการบันทึก log:

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

หากต้องการระงับการบันทึก log ส่วนใหญ่:

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" เมื่อจัดการกับเนื้อหาข้อความที่มีรูปแบบไม่ถูกต้อง เสียหาย หรือไม่รองรับ เพื่อให้มั่นใจว่ามีการถ่ายโอนข้อความจากเอกสารต้นฉบับไปยังเอกสารที่ผ่านการ conform ให้ได้มากที่สุด ตัวอย่างเช่น หากสีเส้นขอบของข้อความมีรูปแบบไม่ถูกต้องหรืออยู่ในรูปแบบสีที่ไม่รองรับ ข้อความจะยังคงอยู่ในเอกสารเอาต์พุต โดยสีเส้นขอบจะใช้ค่าเริ่มต้นเป็นสีดำ

แนวทาง "best guess" นี้อาจทำให้ข้อความที่ปรากฏคล้ายกับต้นฉบับ หรือในบางกรณี ข้อความอาจมองไม่เห็นแต่ยังคงอยู่ในเอกสารเอาต์พุต เนื่องจากเราไม่สามารถรับประกันได้ว่า best guess ของเราจะจัดการข้อความในลักษณะเดียวกับในเอกสารต้นฉบับ อัตราการจัดการจึงสะท้อนสิ่งนี้เป็นเนื้อหาที่ยังไม่ได้รับการจัดการอย่างสมบูรณ์ ดังนั้น อัตราการจัดการข้อความที่ต่ำไม่ได้หมายความเสมอไปว่าเอกสารจะมีลักษณะแตกต่างไปจากเดิมเมื่อมีการใช้ best guesses

มีอาร์กิวเมนต์อยู่สามรายการสำหรับกำหนดอัตราความสำเร็จขั้นต่ำเมื่อจัดการเนื้อหา:

  --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 ใหม่ หากเครื่องมือพบอักขระที่ไม่สามารถประมวลผลได้ ระบบจะแทนที่ด้วยอักขระเครื่องหมายคำถามเริ่มต้น (?) คุณสามารถปรับวิธีการแสดง CID ที่ไม่สามารถประมวลผลได้ใน PDF ของคุณโดยใช้อาร์กิวเมนต์ --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 '■'.

ตัวอย่าง:

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 รองรับรูปแบบตัวหนา ตัวเอียง และตัวหนาเอียงของแบบอักษร Type1 base 14 และแบบอักษร Cambria นอกจากนี้ Conform ยังรองรับแบบอักษรแบบกำหนดเองบางรายการด้วย

แบบอักษร Type1 base 14 ได้แก่:

  • 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 ไม่รองรับ glyph จากแบบอักษรที่ฝังไว้ อักขระนั้นจะถูกระงับ สำหรับข้อมูลเพิ่มเติม โปรดดู การระงับ CID

โดยค่าเริ่มต้น แบบอักษร sans serif ที่มักถูกฝังไว้บางรายการจะถูกแทนที่ด้วย Helvetica แทน Cambria เพื่อให้มีความคล้ายคลึงกันทางภาพ คุณสามารถปรับเปลี่ยนสิ่งนี้ รวมถึงคุณลักษณะการแทนที่แบบอักษรอื่น ๆ ได้โดยใช้อาร์กิวเมนต์เหล่านี้:

  --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 ช่วยให้ควบคุมเพิ่มเติมได้ว่าไฟล์ใดในไดเรกทอรีอินพุตจะถูกประมวลผล โดยใช้ตัวกรองการรวมและการยกเว้น ตัวกรองเหล่านี้ช่วยให้คุณระบุได้ว่าจะประมวลผลหรือเพิกเฉยไฟล์ใด โดยใช้ไวลด์การ์ดสไตล์ Unix shell พื้นฐานได้โดยตรงจากบรรทัดคำสั่ง หากไฟล์ตรงกับทั้งกฎการรวมและกฎการยกเว้น ไฟล์นั้นจะถูกยกเว้น

โดยค่าเริ่มต้น หากละเว้นอาร์กิวเมนต์ --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.

ตารางต่อไปนี้แสดงตัวอย่างของแพตเทิร์นบางส่วนที่สามารถใช้ได้:

แพตเทิร์นความหมายตัวอย่างตรงกันไม่ตรงกัน
*ตรงกับทุกอย่าง*.pdffile.pdf, report.pdffile.docx
?ตรงกับอักขระเดี่ยวใดก็ได้file_?.pdffile_1.pdf, file_A.pdffile_10.pdf
[seq]ตรงกับอักขระใดก็ได้ใน seqfile_[AB].pdffile_A.pdf, file_B.pdffile_C.pdf
[!seq]ตรงกับอักขระใดก็ได้ที่ไม่อยู่ใน seqfile_[!AB].pdffile_C.pdf, file_D.pdffile_A.pdf, file_B.pdf

ข้อควรพิจารณาเกี่ยวกับการแยกตัวพิมพ์เล็กและตัวพิมพ์ใหญ่

ชื่อไฟล์มีการแยกตัวพิมพ์เล็กและตัวพิมพ์ใหญ่บน Linux แต่ไม่แยกตัวพิมพ์เล็กและตัวพิมพ์ใหญ่บน Windows ซึ่งส่งผลต่อวิธีการตีความพาธไฟล์หรือรูปแบบบนระบบปฏิบัติการที่แตกต่างกัน

  • บน Linux, report.pdf และ Report.pdf จะถือเป็นไฟล์คนละไฟล์
  • บน Windows ทั้งสองจะถือเป็นไฟล์เดียวกัน

คำแนะนำ: เพื่อให้เกิดความสอดคล้องกันข้ามแพลตฟอร์ม ให้ใช้รูปแบบตัวพิมพ์ในชื่อไฟล์และรูปแบบอย่างสม่ำเสมอ หากทำงานข้ามหลายสภาพแวดล้อม ให้พิจารณาใช้รูปแบบ wildcard (*) ตามความเหมาะสมเพื่อหลีกเลี่ยงความไม่ตรงกัน

การจัดการการรวมไฟล์เดี่ยว

หากระบุไฟล์เดียวด้วย --include-files โปรดทราบว่า Conform จะตรวจสอบก่อนว่าค่าที่ระบุเป็น ไฟล์บนดิสก์ หรือไม่ และหากไม่ใช่ ค่านั้นจะถูกตีความเป็น pattern.

ปัญหาที่อาจเกิดขึ้น: หากผู้ใช้ระบุว่า:

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

Conform จะเห็นว่า /home/azureuser/input_files/first.pdf มีอยู่จริงเป็นไฟล์ และจะพยายามอ่านไฟล์นั้นเป็นไฟล์รายการที่มีหลายพาธหรือหลาย pattern.

วิธีแก้ไข: เพื่อระบุอย่างชัดเจนว่านี่คือ pattern สำหรับไฟล์เดียว ให้เติม อัฒภาคต่อท้าย:

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

วิธีนี้ช่วยให้ Conform ตีความพาธเป็น pattern แทนที่จะเป็นไฟล์รายการ.

รวมไฟล์ PDF ที่ระบุ

หากต้องการประมวลผลเฉพาะ PDF ที่มีคำว่า "report" อยู่ในชื่อไฟล์:

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 ที่ระบุ

หากต้องการประมวลผล PDF ทั้งหมด ยกเว้น ไฟล์ที่มีคำว่า "draft" อยู่ในชื่อ:

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"

ผลลัพธ์: PDF ทั้งหมดจะถูกประมวลผล ยกเว้นไฟล์อย่างเช่น proposal_draft.pdf และ internal_draft_v2.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 ร่วมกัน

หากไฟล์ตรงกับทั้งกฎ inclusion และ exclusion ไฟล์นั้นจะถูกยกเว้น

หากต้องการประมวลผลไฟล์ทั้งหมดจาก 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" อยู่ในชื่อไฟล์

การใช้ไฟล์สำหรับรายการขนาดใหญ่

สำหรับการกรองที่ซับซ้อนมากขึ้น คุณสามารถระบุไฟล์ที่มีหลาย pattern หรือ absolute file path แทนการระบุโดยตรงได้

ตัวอย่างการใช้ไฟล์รายการ inclusion:

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 เท่านั้น


โครงสร้างไฟล์เอาต์พุตและการจัดหมวดหมู่

โครงสร้างไดเรกทอรีสำหรับไฟล์เอาต์พุตสามารถปรับแต่งได้สำหรับทั้งโหมดการประมวลผล engine และ conform_only โดยใช้อาร์กิวเมนต์บรรทัดคำสั่ง --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.

หากละไว้ ระบบจะใช้โครงสร้าง categorised เป็นค่าเริ่มต้น มีตัวเลือกเพิ่มเติมสำหรับปรับแต่งชื่อไดเรกทอรีย่อยของหมวดหมู่:

  • --engine-success-path: ไม่บังคับ ชื่อไดเรกทอรีย่อยเอาต์พุตสำหรับไฟล์ที่ประมวลผลสำเร็จโดย Embedded Engine โดยไม่จำเป็นต้องสร้างใหม่ด้วย Conform ค่าเริ่มต้นคือ 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
}
]
}