跳轉到

法院電子申報合規

各地法院的電子申報(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 PDF 全嵌入 無限制
台灣司法院 20 MB PDF 全嵌入 無密碼保護

核心 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 部分)
封面頁產生

延伸閱讀