法院電子申報合規¶
各地法院的電子申報(e-Filing)系統對 PDF 文件有嚴格的技術要求:檔案大小上限、頁面格式、字型嵌入、書籤結構等。NextPDF Enterprise 的 EFiling 模組確保文件在提交前完全符合目標法院的技術規格。
支援轄區規格¶
| 轄區 / 系統 | 大小上限 | 格式 | 字型要求 | 安全性 |
|---|---|---|---|---|
| PACER / CM/ECF(美國聯邦) | 25 MB / 部分 50 MB | PDF/A 或 PDF 1.4+ | 全嵌入 | 無密碼保護 |
| 加州法院(CMS) | 25 MB | PDF 1.4+ | 全嵌入 | 無密碼保護 |
| 紐約州法院(NYSCEF) | 5 MB | PDF 1.4+ | 全嵌入 | 無密碼保護 |
| 英國 HMCTS | 10 MB | 全嵌入 | 無限制 | |
| 台灣司法院 | 20 MB | 全嵌入 | 無密碼保護 |
核心 API¶
EFilingDocument¶
use NextPDF\Enterprise\Compliance\EFiling\EFilingDocument;
use NextPDF\Enterprise\Compliance\EFiling\CourtJurisdiction;
use NextPDF\Enterprise\Compliance\EFiling\FilingMetadata;
$filing = EFilingDocument::forJurisdiction(CourtJurisdiction::PacerCmEcf)
->withSourceDocument($document)
->withMetadata(
FilingMetadata::create(
caseNumber: '2025-CV-00123',
caseTitle: 'ACME Corp v. Widget LLC',
filingType: 'Motion for Summary Judgment',
filerName: 'Jane Smith',
filerBarNumber: 'CA-123456',
filedAt: new DateTimeImmutable(),
)
)
->withCoverPage(CoverPageTemplate::PacerStandard)
->validate() // 驗證格式符合目標法院規格
->prepare(); // 產生可提交文件(可能觸發自動分拆)
PHP Compatibility
This example uses PHP 8.5 syntax. If your environment runs PHP 8.1 or 7.4, use NextPDF Backport for a backward-compatible build.
SizeAwareSplitter¶
當文件超過法院大小限制時,SizeAwareSplitter 智能分拆文件並維護完整性:
use NextPDF\Enterprise\Compliance\EFiling\SizeAwareSplitter;
use NextPDF\Enterprise\Compliance\EFiling\SplitStrategy;
$splitter = new SizeAwareSplitter(
strategy: SplitStrategy::PreserveLogicalSections, // 優先在章節邊界分拆
maxBytesPerPart: 25 * 1024 * 1024, // 25 MB
overlapPages: 0,
);
$parts = $splitter->split($oversizedDocument);
foreach ($parts as $index => $part) {
// 每部分自動加入連續性封面頁
// "Part 2 of 4: Motion for Summary Judgment"
echo sprintf(
'Part %d of %d: %d pages, %.1f MB',
$part->partNumber(),
count($parts),
$part->pageCount(),
$part->sizeBytes() / 1024 / 1024,
);
}
FilingValidator¶
use NextPDF\Enterprise\Compliance\EFiling\FilingValidator;
$validator = new FilingValidator(CourtJurisdiction::PacerCmEcf);
$result = $validator->validate($document);
foreach ($result->violations() as $violation) {
echo match ($violation->type()) {
ViolationType::FileTooLarge => "檔案大小 {$violation->actualValue()} 超過 {$violation->limit()} 限制",
ViolationType::FontNotEmbedded => "字型 {$violation->fontName()} 未完整嵌入",
ViolationType::PasswordProtected => '文件含密碼保護,申報系統無法存取',
ViolationType::NonSearchableText => '文件含非可搜尋文字,需 OCR 處理',
default => $violation->description(),
};
}
封面頁產生¶
不同法院要求不同格式的封面頁:
use NextPDF\Enterprise\Compliance\EFiling\CoverPageBuilder;
use NextPDF\Enterprise\Compliance\EFiling\CoverPageTemplate;
$coverPage = CoverPageBuilder::fromTemplate(CoverPageTemplate::PacerStandard)
->withCaseInfo(
caseNumber: '2:25-cv-00123',
district: 'Central District of California',
judge: 'Hon. Maria Chen',
division: 'Western Division',
)
->withFilingInfo(
documentTitle: 'PLAINTIFF\'S MOTION FOR SUMMARY JUDGMENT',
documentType: DocumentType::Motion,
pageCount: 42,
exhibitCount: 8,
)
->withAttorneyInfo(
firmName: 'Smith & Associates LLP',
attorneyName: 'Jane Smith',
barNumber: 'CA-123456',
email: '[email protected]',
phone: '(213) 555-0100',
)
->build();
大型申報工作流程¶
flowchart TD
A[原始文件] --> B[FilingValidator 驗證]
B --> C{通過驗證?}
C -->|否| D[自動修正]
D --> E{可自動修正?}
E -->|是| B
E -->|否| F[回報人工處理清單]
C -->|是| G{檔案大小 > 限制?}
G -->|是| H[SizeAwareSplitter 分拆]
H --> I[各部分加入封面頁]
G -->|否| J[加入封面頁]
I --> K[最終驗證]
J --> K
K --> L[產生申報包]
L --> M[提交至法院系統] 效能考量¶
| 作業 | 指標 |
|---|---|
| 驗證(100 頁文件) | |
| 大小感知分拆(200 頁 / 4 部分) | |
| 封面頁產生 |