Phương thức THotPDF.RepairPDFUA2Structure
Sửa các khiếm khuyết không gian tên, thuộc tính, cấu trúc và khả năng truy cập PDF/UA-2 có thể khôi phục bên trong một giao dịch đồ thị sao chép khi ghi và xác thực đồ thị ứng viên trước khi cam kết
Khai báo
function RepairPDFUA2Structure(
const Options: THPDFUA2RepairOptions;
out Report: THPDFUA2RepairReport;
out Issues: THPDFUA2ValidationIssues): boolean; overload;
function RepairPDFUA2Structure(
const Options: THPDFUA2RepairOptions;
out Report: THPDFUA2RepairReport;
out Issues: THPDFUA2ValidationIssues;
out Findings: THPDFComplianceFindings): boolean; overload;
Đơn vị
HPDFDoc
Tùy chọn sửa
Bắt đầu với THPDFUA2RepairOptions.Default và chỉ ghi đè các quyết định chính sách được yêu cầu bởi quy trình đầu vào
| Trường | Mục đích |
|---|---|
NormalizeDuplicateNamespaces | Xây dựng lại StructTreeRoot/Namespaces với một từ điển gián tiếp chuẩn cho mỗi URI và từ chối các ánh xạ vai trò xung đột |
RegisterReferencedNamespaces | Đăng ký các từ điển không gian tên hợp lệ được tham chiếu bởi các phần tử cấu trúc, thuộc tính hoặc ánh xạ vai trò nhận biết không gian tên |
RepairStandardStructureNamespaces | Gán không gian tên PDF 2.0 cho các vai trò chuẩn khi không gian tên thiếu hoặc không hợp lệ và luôn chuẩn hóa Document cấp cao nhất |
RepairAttributeNamespaces | Chuẩn hóa các tham chiếu không gian tên thuộc tính và gỡ bỏ các mục nhập không gian tên không hợp lệ khỏi các chủ sở hữu chuẩn |
RepairAttributeRevisions | Chuẩn hóa các số bản sửa đổi âm hoặc phân số và gỡ bỏ các mục nhập bản sửa đổi mồ côi khỏi các mảng thuộc tính |
RepairListSemantics | Chuẩn hóa việc đánh số, cờ tiếp tục, loại tiếp tục không hợp lệ và một chú thích đặt sai vị trí mà không bịa nội dung danh sách |
RepairTableSemantics | Chuẩn hóa các span và phạm vi không hợp lệ, gỡ bỏ các tham chiếu tiêu đề cục bộ bảng không hợp lệ và di chuyển một chú thích đặt sai vị trí |
RepairRubyWarichuSequences | Sắp xếp lại các con chỉ khi tập đa vai trò bắt buộc chính xác đã hiện diện |
RepairPronunciationHints | Gỡ bỏ các gợi ý bị gõ sai loại, cắt tỉa các tham chiếu từ điển không hợp lệ và chuẩn hóa các loại con PLS MIME nhúng |
RepairMissingAlternateText | Khôi phục Alt bị thiếu cho Figure, Formula và Form từ một tiêu đề hiện có, văn bản mở rộng, văn bản trích xuất cùng MCID hoặc một dự phòng tường minh theo thứ tự đó |
RepairLanguageInheritance | Nâng một ngôn ngữ mặc định hợp lệ của gốc cấu trúc hoặc tường minh lên Catalog và gỡ bỏ các mục nhập ngôn ngữ cấp cấu trúc không hợp lệ hoặc thừa khi kế thừa không mơ hồ |
RepairHeadingOrder | Đánh số lại chỉ các khiếm khuyết tiêu đề đầu tiên và cấp bị bỏ qua trong khi giữ thứ tự tài liệu |
RepairArtifactTagging | Viết lại các thẻ nội dung được đánh dấu liên kết với một phần tử cấu trúc Artifact cho nội dung nhà sản xuất và trang đã nạp |
AllowDocumentFragmentHeadingStarts | Đặt lại ngữ cảnh tiêu đề bên trong mỗi DocumentFragment cho cả việc sửa và xác thực sau sửa |
RollbackOnValidationFailure | Khôi phục đồ thị gốc khi bất kỳ lỗi PDF/UA-2 nào còn lại sau khi sửa |
CustomAttributeNamespaceURI | Cung cấp không gian tên tường minh cho các chủ sở hữu thuộc tính tùy chỉnh có ngữ nghĩa không thể suy ra an toàn, với mặc định rỗng thất bại đóng |
DefaultLanguage | Cung cấp một thẻ ngôn ngữ BCP-47 chỉ khi cả Catalog lẫn gốc cấu trúc không chứa ngôn ngữ hợp lệ |
FallbackAlternateText | Cung cấp văn bản thay thế do bên gọi xem xét sau khi mọi nguồn dẫn xuất từ tài liệu thất bại, với mặc định rỗng không bao giờ bịa mô tả |
MaxGeneratedAlternateTextCharacters | Giới hạn trích xuất văn bản cùng MCID và mặc định là 4.096 đơn vị mã UTF-16 |
MaxObjects | Giới hạn quét đồ thị đối tượng và mặc định là 1.000.000 đối tượng |
MaxRepairs | Giới hạn các thay đổi được giữ lại và mặc định là 100.000 thao tác sửa |
Báo cáo sửa
THPDFUA2RepairReport báo cáo liệu đồ thị đã thay đổi hay quay lui, liệu một giới hạn bị vượt quá, trạng thái xác thực sau sửa, đối tượng đã kiểm tra, lỗi còn lại và số lượng cho mọi họ sửa bao gồm văn bản thay thế, mục nhập ngôn ngữ, cấp tiêu đề và thẻ Artifact
UnresolvedAlternateTextCount, UnresolvedLanguageCount và UnresolvedArtifactCount phân biệt các ngữ nghĩa vẫn cần xem xét của tác giả với các thay đổi tự động
Mảng THPDFUA2ValidationIssues được trả về chứa các chẩn đoán sau sửa khi xác thực thất bại và các chẩn đoán ổn định riêng cho việc sửa khi một giới hạn tài nguyên hoặc ánh xạ vai trò trùng lặp xung đột hủy bỏ giao dịch
Overload chi tiết cũng trả về các phát hiện trước sửa được chú thích là crsApplied, crsUnresolved, crsRolledBack hoặc crsFailed, cùng các tóm tắt đếm cho mỗi họ sửa
Overload nguồn gốc này thực hiện một lượt xác thực trước sửa có giới hạn bổ sung; dùng overload ba đầu ra hiện có khi chỉ cần báo cáo cuối cùng và các vấn đề
Tính nguyên tử và an toàn
- Mọi thay đổi tham gia vào giao dịch đồ thị tài liệu, bao gồm các từ điển không gian tên gián tiếp mới được cấp phát
- Các từ điển không gian tên trùng lặp chỉ được hợp nhất khi các ánh xạ vai trò của chúng khớp nhau
- Ngữ nghĩa thuộc tính tùy chỉnh không bao giờ được bịa trừ khi
CustomAttributeNamespaceURIđược cung cấp tường minh - Văn bản thay thế không bao giờ được bịa trừ khi
FallbackAlternateTextđược cung cấp tường minh - Các chỉnh sửa nội dung trang của nhà sản xuất được dàn dựng cho đến khi xác thực thành công, trong khi các chỉnh sửa stream đã nạp vẫn nằm trong giao dịch đồ thị
- Các giao điểm bảng mơ hồ, con cấu trúc thiếu, ID xung đột, đích tiếp tục chưa phân giải và ngữ nghĩa tiêu đề vắng mặt không bao giờ được đoán
- Chính sách mặc định quay lui toàn bộ việc sửa khi các lỗi PDF/UA-2 không liên quan còn lại
- Đồ thị đã nạp và phía nhà sản xuất dùng cùng một đường xác thực và sửa có giới hạn
Ví dụ
var
Options: THPDFUA2RepairOptions;
Report: THPDFUA2RepairReport;
Issues: THPDFUA2ValidationIssues;
begin
Options := THPDFUA2RepairOptions.Default;
Options.DefaultLanguage := 'en-US';
Options.CustomAttributeNamespaceURI :=
'https://example.com/ns/accessibility-attributes';
if not PDF.RepairPDFUA2Structure(Options, Report, Issues) then
raise Exception.CreateFmt('%s at %s',
[String(Issues[0].Code), String(Issues[0].Path)]);
end;