在 JSPdf 中嵌入二进制文件

2024-05-22

我在用着JsPDF https://www.npmjs.com/package/jspdf将 html 内容导出到下载的 PDF。考虑以下示例,该示例获取一些 HTML 内容并将其输出到下载的 PDF 文件,使用JsPdf

import React from "react";
import { render } from "react-dom";
import { renderToString } from "react-dom/server";
import Hello from "./Hello";
import jsPDF from "jspdf";

const styles = {
  fontFamily: "sans-serif",
  textAlign: "center"
};
const colstyle = {
  width: "30%"
};
const tableStyle = {
  width: "100%"
};
const Prints = () => (
  <div>
    <h3>Time & Materials Statement of Work (SOW)</h3>
    <h4>General Information</h4>
    <table id="tab_customers" class="table table-striped" style={tableStyle}>
      <colgroup>
        <col span="1" style={colstyle} />
        <col span="1" style={colstyle} />
      </colgroup>
      <thead>
        <tr class="warning">
          <th>SOW Creation Date</th>
          <th>SOW Start Date</th>
          <th>Project</th>
          <th>Last Updated</th>
          <th>SOW End Date</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td>Dec 13, 2017</td>
          <td>Jan 1, 2018</td>
          <td>NM Connect - NMETNMCM</td>
          <td>Dec 13, 2017</td>
          <td>Dec 31, 2018</td>
        </tr>
      </tbody>
    </table>
    <p>
      This is a Time and Materials Statement of Work between Northwestern Mutual
      Life Insurance Company and Infosys with all general terms and conditions
      as described in the current Master Agreement and its related documents
    </p>
  </div>
);

const print = () => {
  const string = renderToString(<Prints />);
  const pdf = new jsPDF("p", "mm", "a4");
  pdf.fromHTML(string);
  pdf.save("pdf");
};

const App = () => (
  <div style={styles}>
    <Hello name="CodeSandbox" />
    <h2>Start editing to see some magic happen {"\u2728"}</h2>
    <button onClick={print}>print</button>
  </div>
);

render(<App />, document.getElementById("root"));

我的应用程序有一个更复杂的解决方案,但这是为了演示我正在使用的内容类型。

在我的应用程序中,我有一些用例,其中用户上传附件(保存到 MySQL 数据库中)并且可以通过 API 进行检索。在旅程中的某个时刻,他们可以将某些内容导出为 PDF。在某些时候,他们可能希望查看 PDF 中的附件。

是否可以在 PDF 文档中嵌入二进制文件?如果是这样,该怎么办?我在 Stackoverflow 或其他地方都没有遇到过任何例子。

EDIT:当我提到“嵌入二进制文件”时,我的意思是将该文件附加到 PDF 中。例如,在 Word 中,您可以在文档中包含其他内容(图片、Excel 等)的附件,当用户双击该附件时,就会将其打开。我希望在 PDF 中做类似的事情。也许在将二进制文件附加到 PDF 之前对其进行压缩(如果可能)是有意义的。

我不确定 Adob​​e 在这方面有什么限制,但如果可能的话,请提供帮助。

EDIT2

我见过这个example https://stackoverflow.com/q/19065562/3480297如何添加图像 - 有没有办法扩展它,以便它接受任何文件类型而不仅仅是图像?


这对于 jsPDF 来说是不可能的,但我可以注入 QR 码或视频等文件(右上角),而 pdf 则由我的浏览器控制(请参阅左侧的署名线,在制作此演示的过程中没有服务器受到损害)记住pdf 始终位于客户端编辑器/查看器(又称浏览器)中,而不是服务器中,这只是 html 文本。

jsPDF 只能使用其命令库(例如放置文本或图像(例如 HTML 画布))构建 PDF。它无权访问富媒体视频文件等系统资源。

In theory you could possibly extend its functionality to ask for an upload of image file to be used like the QRCode (a binary image), but it is unlikely it could inject a rich media video file by attachment or embedment, only like chromium Edge a reference to Flip video or YourTub. enter image description here

同样,目前不太可能允许在 pdf 应用程序外部进行任何嵌入,因此我必须在显示 blob 后使用查看器和编辑器将这些对象添加到用户 local"temp".pdf 中,然后再用户保存再次文件,但为什么还要麻烦该文件已经被 PDF 查看器保存了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 JSPdf 中嵌入二进制文件 的相关文章

随机推荐

  • DWR 如何转换传入数据并避免类型擦除

    我想请求一个集合的项目类 某种特定的反映 但是关于类型擦除似乎是不可能的 而且关于我在堆栈上读到的一些主题也是如此 有一些解决方法 here https stackoverflow com questions 8452893 avoidin
  • 在 MVC 4 中的另一个表单中验证 JQuery UI 模式表单

    我在 MVC 4 中有一个表单 其中包含多个字段 根据组合的值 我需要打开一个模式对话框表单并加载到这 3 个附加字段中 这些字段将影响我正在创建的同一实体 在主窗体中进行编辑 对于这个模式对话框 我使用的是 jQuery UI 中的对话框
  • Windows Azure 实例到底是什么? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 在 Windows Azure 门户上 截至 2013 年 1 月 当我将 Windows Azure 网站实例从 1 扩展到 6 时 我会得到什么
  • 使用 .Net 创建 CalDAV 服务

    我想在我的应用程序中创建一个外部用户可以查看的日历 CalDAV 基本上是 WebDAV iCalendar 格式似乎得到了相对广泛的支持 尽管某些客户端 例如 Outlook 不太支持这种格式 不过对我来说完全是新的 我想外部发布事件 我
  • 哪些因素会导致 App Engine 请求中未跟踪时间的高度可变性?

    我刚刚对我的应用程序进行了负载测试 我注意到两个相同请求的延迟存在很大差异 3 秒与 30 秒 当我挖掘痕迹时 我发现了以下内容 Traced ms Untraced ms High latency Request 193 29948 Lo
  • CSS“内容”不起作用

    我想通过 CSS 添加该段落的文本 而不是在 HTML 中 因为它会随着网站的响应能力而变化 现在我无法让它工作 我想知道CSS是否有问题 另外 这是唯一可以做到的方法 使用纯 HTML 和 CSS 还是有另一种方法来定位文本并根据每个分辨
  • Google BigQuery,使用“unnest”函数时丢失了空行

    StandardSQL WITH tableA AS SELECT T001 T002 T003 AS T id 1 5 AS L id UNION ALL SELECT T008 T009 AS T id NULL AS L id SEL
  • 在 iPad 上显示 PDF 文档 - 颜色问题

    我为 iPad 构建了一个 PDF 阅读器 在将预览中的文档与模拟器和设备进行并排比较时 我注意到一些颜色问题 最好的形容就是颜色变得更加浓郁 近距离使用的相似颜色之间的任何差异都会变得更加明显 而所有颜色总体上看起来都更亮 尽管大肆宣传将
  • 在 VBScript 中,如何使用 mid 获取字符串并在“;”处分割字符串

    所以我对 VBScript 比较陌生 并且正在努力获取字符串并删除 拆分它 我目前有 id mid storeline id instr id storeline 1 我本质上想删除 之后的任何代码 例如 ID 12049302 Heigh
  • 转换为父类型——Java

    这实际上是一种验证 有没有any将子对象转换为父类型有好处吗 假设我有两个课程Parent and Child Child正在延伸Parent 有什么区别吗 代码 Parent p new Child and Parent p Parent
  • 在同一进程中混合 .NET 3.5 与 4/4.5 程序集

    我想将基于 NET 3 5 WinForms 的应用程序迁移到最新的 NET 版本 4 5 该应用程序使用当前也基于 NET 3 5 的 外部 组件 可以视为插件 我想知道我们转换时使用哪些运行时 核心库仅应用程序使用 NET 4 5 进行
  • 适合 .Net 开发人员的 Grails/Roo

    我目前正在学习 Grails 和 Roo 绝大多数培训材料都是针对新开发人员或现有 Java 开发人员 有谁知道使用 Net C ASP Net Asp Net MVC 翻译现有开发经验的任何指南 资源或技巧 你做过很多 ASP MVC 吗
  • MySQL SELECT OpenCarts 数据库中的重复行

    只是玩一下 OpenCart DB 看看我是否能学到一些东西 如果我使用以下SELECT结果返回重复的行 SELECT DISTINCT p product id AS pid p model AS modelo SUBSTRING p m
  • 对构建过程依赖于与另一个容器通信的应用程序进行 Docker 化

    我有一个 Ruby on Rails 应用程序 我正在尝试对其进行容器化 以便可以使用 Docker 进行部署 version 3 4 services db image postgres web container name my rai
  • 为什么在概念中使用 std::forward ?

    我正在读有关约束的 cppreference 页面 http en cppreference com w cpp language constraints并注意到这个例子 example constraint from the standa
  • 使用 OData 模型在间隔时间内更改表的单元格

    我有这段代码 我需要我的表格显示前 10 位患者 并在 10 秒后显示接下来的 10 位患者 而无需触摸任何按钮 自动 我正在寻找与此类似的东西 https embed plnkr co ioh85m5OtPmcvPHyl3Bg https
  • React Native Android 构建错误 MainActivity.java:29: 错误: 找不到符号

    我在尝试编译我的 React Native android 应用程序时收到此错误 Android 应用程序无法解析 BuildConfig DEBUG app processDebugJavaRes UP TO DATE app compi
  • 在模板中添加浮点数(django)

    也许我遗漏了一些东西 但我想添加一个浮点数 如下所示 floatnumber add 3 4 过滤器添加我的结果 所以我不想写我的过滤器 但如果这是唯一的方法 我将复制添加过滤器 现在我正在这样做 def addf value arg Ad
  • UrlMapping 和文件扩展名

    我有以下 url 映射 name a a file controller attachment action get 我想像这样使用它
  • 在 JSPdf 中嵌入二进制文件

    我在用着JsPDF https www npmjs com package jspdf将 html 内容导出到下载的 PDF 考虑以下示例 该示例获取一些 HTML 内容并将其输出到下载的 PDF 文件 使用JsPdf import Rea