将HTML转换为Word然后转换为pdf

汤米

我需要将HTML转换为PDF。我已经尝试过jsPDF,并在stackoverflow上阅读了很多与此相关的问题。我已经尝试了所有存在的方法,html(),fromHtml,html2pdf和html2canvas。但是它们都有各种问题。缺少内容,模糊内容或边距都会完全消失。

所以我正在尝试另一条路线。我发现以下代码片段可以转换为Word文档。这可行。

function exportHTML(){
       var header = "<html xmlns:o='urn:schemas-microsoft-com:office:office' "+
            "xmlns:w='urn:schemas-microsoft-com:office:word' "+
            "xmlns='http://www.w3.org/TR/REC-html40'>"+
            "<head><meta charset='utf-8'><title>Export HTML to Word Document with JavaScript</title></head><body>";
       var footer = "</body></html>";
       var sourceHTML = header+document.getElementById("source-html").innerHTML+footer;
       
       var source = 'data:application/vnd.ms-word;charset=utf-8,' + encodeURIComponent(sourceHTML);
       var fileDownload = document.createElement("a");
       document.body.appendChild(fileDownload);
       fileDownload.href = source;
       fileDownload.download = 'document.doc';
       fileDownload.click();
       document.body.removeChild(fileDownload);
    }

但是,我不希望下载Word文件。我需要捕获它并将其转换为base64字符串,因为然后我可以将其发送到可以将Word文档转换为pdf的rest api。其余的api不直接支持html,否则我只会发送html。因此,解决方法是先用词再用pdf。ps由于敏感信息,我无法使用在线pdf解决方案,其余api是内部服务。

jknotek

但是,我不希望下载Word文件。我需要捕获它并将其转换为base64字符串,因为然后我可以将其发送到可以将Word文档转换为pdf的rest api。

然后,无需将其插入下载链接。只需使用base64编码字符串即可btoa

function exportHTML(){
       var header = "<html xmlns:o='urn:schemas-microsoft-com:office:office' "+
            "xmlns:w='urn:schemas-microsoft-com:office:word' "+
            "xmlns='http://www.w3.org/TR/REC-html40'>"+
            "<head><meta charset='utf-8'><title>Export HTML to Word Document with JavaScript</title></head><body>";
       var footer = "</body></html>";
       var sourceHTML = header+document.getElementById("source-html").innerHTML+footer;

       var source = 'data:application/vnd.ms-word;charset=utf-8,' + encodeURIComponent(sourceHTML);

       // encode here instead of creating a link
       var encoded = window.btoa(source);
       return encoded;
}

然后,您可以随意使用它XMLHttpRequest来将编码后的字符串发送到您的API端点。例如:

var encodedString = exportHTML();

var xhr = new XMLHttpRequest();
xhr.open('POST', '/my-conversion-endpoint', true);

xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');

xhr.onreadystatechange = function() {
  if(xhr.readyState == 4 && xhr.status == 200) {
    // request finished
    alert(xhr.responseText);
  }
}

xhr.send('encodedString=' + encodedString);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

脚本以编辑Google Doc,然后转换为PDF

来自分类Dev

将int指针转换为void指针,然后转换为双指针

来自分类Dev

将Stream对象转换为json对象,然后转换为用户定义的对象

来自分类Dev

如何将scanf结果转换为NSString,然后转换为类的属性?

来自分类Dev

将图像转换为字节然后转换为字符串时出现问题

来自分类Dev

将字符串转换为Char然后转换为Int

来自分类Dev

将Stream对象转换为json对象,然后转换为用户定义的对象

来自分类Dev

将十六进制数组转换为Binary,然后转换为Decimal

来自分类Dev

将两个列表转换为动态嵌套字典,然后转换为 JSON

来自分类Dev

问:iOS字符转换为gbk编码,然后转换为十六进制,然后转换为数据

来自分类Dev

将python对象转换为String,对其进行编辑,然后转换回原始类型的对象

来自分类Dev

Java-帮助将字母转换为整数,加5,然后转换回字母

来自分类Dev

将Word文档批量转换为PDF

来自分类Dev

MVC4 C#获取Office Word文档,然后转换为列表

来自分类Dev

根据创建日期对jpg排序,然后转换为单个pdf

来自分类Dev

如何将字符串转换为UTF-16LE,然后转换为Base64?

来自分类Dev

swift-将字符串转换为日期,然后转换为其他格式的字符串

来自分类Dev

将字符串转换为十六进制,然后转换为字节数组

来自分类Dev

Python:将十六进制值从大端转换为小端,然后转换为十进制

来自分类Dev

将“字符串对象”转换为 Int32 数组,然后转换为 Uint32 数组

来自分类Dev

将Unicode转义序列转换为Symbol,然后转储到dom节点

来自分类Dev

将.py文件编译为.c文件,然后转换为.so文件

来自分类Dev

将子级添加到XML,然后转换为CSV

来自分类Dev

将Unicode转义序列转换为Symbol,然后转储到dom节点

来自分类Dev

检查几种选项类型,然后转换为类型

来自分类Dev

$ result仅一行,然后转换为会话

来自分类Dev

检查几种选项类型,然后转换为类型

来自分类Dev

如何组合javascript对象然后转换为JSON?

来自分类Dev

导入 mysql.connector 然后转换为 .exe

Related 相关文章

  1. 1

    脚本以编辑Google Doc,然后转换为PDF

  2. 2

    将int指针转换为void指针,然后转换为双指针

  3. 3

    将Stream对象转换为json对象,然后转换为用户定义的对象

  4. 4

    如何将scanf结果转换为NSString,然后转换为类的属性?

  5. 5

    将图像转换为字节然后转换为字符串时出现问题

  6. 6

    将字符串转换为Char然后转换为Int

  7. 7

    将Stream对象转换为json对象,然后转换为用户定义的对象

  8. 8

    将十六进制数组转换为Binary,然后转换为Decimal

  9. 9

    将两个列表转换为动态嵌套字典,然后转换为 JSON

  10. 10

    问:iOS字符转换为gbk编码,然后转换为十六进制,然后转换为数据

  11. 11

    将python对象转换为String,对其进行编辑,然后转换回原始类型的对象

  12. 12

    Java-帮助将字母转换为整数,加5,然后转换回字母

  13. 13

    将Word文档批量转换为PDF

  14. 14

    MVC4 C#获取Office Word文档,然后转换为列表

  15. 15

    根据创建日期对jpg排序,然后转换为单个pdf

  16. 16

    如何将字符串转换为UTF-16LE,然后转换为Base64?

  17. 17

    swift-将字符串转换为日期,然后转换为其他格式的字符串

  18. 18

    将字符串转换为十六进制,然后转换为字节数组

  19. 19

    Python:将十六进制值从大端转换为小端,然后转换为十进制

  20. 20

    将“字符串对象”转换为 Int32 数组,然后转换为 Uint32 数组

  21. 21

    将Unicode转义序列转换为Symbol,然后转储到dom节点

  22. 22

    将.py文件编译为.c文件,然后转换为.so文件

  23. 23

    将子级添加到XML,然后转换为CSV

  24. 24

    将Unicode转义序列转换为Symbol,然后转储到dom节点

  25. 25

    检查几种选项类型,然后转换为类型

  26. 26

    $ result仅一行,然后转换为会话

  27. 27

    检查几种选项类型,然后转换为类型

  28. 28

    如何组合javascript对象然后转换为JSON?

  29. 29

    导入 mysql.connector 然后转换为 .exe

热门标签

归档