PHPackages                             cubemage/pdfjs-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [PDF &amp; Document Generation](/categories/documents)
4. /
5. cubemage/pdfjs-bundle

ActiveSymfony-bundle[PDF &amp; Document Generation](/categories/documents)

cubemage/pdfjs-bundle
=====================

Integrates Mozilla PDF.js into Symfony applications.

v1.3.0(10mo ago)08MITJavaScriptPHP &gt;=7.4

Since Jul 7Pushed 10mo agoCompare

[ Source](https://github.com/Cube-Mage/PdfJsBundle)[ Packagist](https://packagist.org/packages/cubemage/pdfjs-bundle)[ RSS](/packages/cubemage-pdfjs-bundle/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (3)Versions (5)Used By (0)

CubeMage PDF.js Bundle for Symfony
==================================

[](#cubemage-pdfjs-bundle-for-symfony)

[![Latest Version on Packagist](https://camo.githubusercontent.com/f13ad913da6707c2da209a55a27036114f968130dab9ed6c9a30966f604025fe/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f637562656d6167652f7064666a732d62756e646c652e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/cubemage/pdfjs-bundle)[![Software License](https://camo.githubusercontent.com/55c0218c8f8009f06ad4ddae837ddd05301481fcf0dff8e0ed9dadda8780713e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](LICENSE)[![Build Status](https://camo.githubusercontent.com/70bccb5555a51f0b28fb587fdbead4a47f9728758a92c8bcd6e1be86b9c1f555/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f796f75722d6769746875622d757365726e616d652f637562656d6167652d7064666a732d62756e646c652f63692e796d6c3f6272616e63683d6d61696e267374796c653d666c61742d737175617265)](https://github.com/your-github-username/cubemage-pdfjs-bundle/actions)

一个为 Symfony 设计的轻量级 Bundle，可以轻松地将 Mozilla 的 [PDF.js](https://github.com/mozilla/pdf.js) 查看器集成到你的项目中。它允许你在任何 Twig 模板中渲染一个功能齐全的 PDF 查看器，并支持 PDF 表单数据的提取和保存。

✨ 主要功能
------

[](#-主要功能)

- 在任何页面中轻松嵌入 PDF 查看器。
- 使用简单的 Twig 函数进行调用。
- 支持 PDF 内置表单 (AcroForms) 的填写和数据提取。
- 允许自定义数据保存的后端路由，使业务逻辑完全解耦。
- 通过 Symfony 的 `assets` 组件进行标准的资源管理。
- 无缝集成，不引入额外的路由或控制器，避免与主应用冲突。

📦 安装
----

[](#-安装)

1. 通过 Composer 安装 Bundle：

    ```
    composer require cubemage/pdfjs-bundle
    ```
2. 在 `config/bundles.php` 文件中注册 Bundle：

    ```
    return [
        // ... 其他 bundles
        CubeMage\PdfJsBundle\CubeMagePdfJsBundle::class => ['all' => true],
    ];
    ```
3. 安装 Bundle 的 Web 资源。此命令会将 PDF.js 的前端文件链接到你项目的 `public/` 目录下。

    ```
    php bin/console assets:install
    ```

⚙️ 配置
-----

[](#️-配置)

你可以选择性地配置一个全局默认的数据保存路由。在 `config/packages/` 目录下创建一个新文件 `cube_mage_pdf_js.yaml`：

```
# config/packages/cube_mage_pdf_js.yaml
cube_mage_pdf_js:
    # 设置一个你项目中用于接收和处理 PDF 表单数据的路由名称
    default_save_route: 'app_save_pdf_data'
```

🚀 使用方法
------

[](#-使用方法)

1. **在你的控制器中，创建用于保存数据的路由**

Bundle 负责前端的展示和数据提交，但你需要自己创建一个 Controller Action 来接收数据并将其存入数据库。

```
// src/Controller/YourController.php
namespace App\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\Routing\Annotation\Route;

class YourController extends AbstractController
{
    /**
     * @Route("/save-pdf-data", name="app_save_pdf_data", methods={"POST"})
     */
    public function savePdfData(Request $request): JsonResponse
    {
        $data = json_decode($request->getContent(), true);

        if (json_last_error() !== JSON_ERROR_NONE) {
            return new JsonResponse(['status' => 'error', 'message' => 'Invalid JSON'], 400);
        }

        // 在这里处理你的业务逻辑，例如：
        // $entityManager = $this->getDoctrine()->getManager();
        // ... 将 $data 数组中的数据保存到你的实体中 ...
        // $entityManager->flush();

        return new JsonResponse(['status' => 'success', 'message' => 'Data saved!']);
    }
}
```

2. **在你的 Twig 模板中调用 `pdf_viewer` 函数**

现在，你可以在任何 Twig 模板中轻松地渲染查看器了。

```
{% extends 'base.html.twig' %}

{% block body %}
    查看我们的合同文档

    {#
       第一个参数是 PDF 文件的公共路径，建议使用 asset() 函数生成。
       第二个参数是保存数据的路由名称。如果已在配置文件中设置，则此参数为可选。
     #}
    {{ pdf_viewer(asset('documents/contract.pdf'), 'app_save_pdf_data') }}

    页面的其他内容...
{% endblock %}
```

如果你已经在 `cube_mage_pdf_js.yaml` 中配置了 `default_save_route`，调用可以更简单：

```
{{ pdf_viewer(asset('documents/contract.pdf')) }}
```

🤝 贡献
----

[](#-贡献)

欢迎任何形式的贡献！请阅读 `CONTRIBUTING.md` 文件了解如何开始。

📜 许可证
-----

[](#-许可证)

本项目基于 MIT 许可证开源。详情请见 [LICENSE](LICENSE) 文件。

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance54

Moderate activity, may be stable

Popularity4

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity39

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

4

Last Release

315d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/7e412a12cc7b196e73b26dd2ac9a1a30bfaaf26fb15ab4c915b8ae471f3c6b25?d=identicon)[Cube-Mage](/maintainers/Cube-Mage)

---

Top Contributors

[![cubemagecom](https://avatars.githubusercontent.com/u/217061198?v=4)](https://github.com/cubemagecom "cubemagecom (5 commits)")

### Embed Badge

![Health badge](/badges/cubemage-pdfjs-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/cubemage-pdfjs-bundle/health.svg)](https://phpackages.com/packages/cubemage-pdfjs-bundle)
```

###  Alternatives

[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M651](/packages/sylius-sylius)[easycorp/easyadmin-bundle

Admin generator for Symfony applications

4.3k16.7M310](/packages/easycorp-easyadmin-bundle)[shopware/platform

The Shopware e-commerce core

3.3k1.5M3](/packages/shopware-platform)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.3M152](/packages/sulu-sulu)[prestashop/prestashop

PrestaShop is an Open Source e-commerce platform, committed to providing the best shopping cart experience for both merchants and customers.

9.0k15.4k](/packages/prestashop-prestashop)[lexik/translation-bundle

This bundle allows to import translation files content into the database and provide a GUI to edit translations.

4362.7M19](/packages/lexik-translation-bundle)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
