精华内容
下载资源
问答
  • indesign导出pdf失败怎么办
    千次阅读
    2020-12-24 05:40:17

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解。

    话题:indesign导出pdf失败怎么办?回答:我刚刚也是这个问题,一页一页导出,有的能导出,有一页不行,发现就是这一页有几个字符没法显示,就是显示粉色方框,删掉(或换字体)之后就能导了,看看你是不是这个原因,可能晚了一点

    参考回答:我安装了一个Acrobat就可以导出PDF了话题:indesign导出PDF,为什么打开PDF,会出现“当打开文档是发生错误回答:1\首先判断一下,在你电脑上其它的PDF能否正常打?2、然后有INDESIG导出一个比较简单的PDF,看看能否正话题:indesign 导出PDF后图片只显示部,是怎么回事?回答:先按“选择工具”按钮,然后点PDF的筐,然后再双击话题:indesign置入pdf时显示回答:你把pdf先拉到ai里打开试试,如果可以就存ai再过去。如果ai也打不开就说明是pdf本身有问题。

    参考回答:安装acrobat之后用它默认的adobe虚拟打印机,把word打印成pdf置入indesign就没问题了话题:indesign导出pdf怎么都是在同一页出现错误呢,导致导出失败。回答:肯定有对象的原因,你把参考线都清除干净再导出试试,因为可能参考线被编进组里了话题:indesign cs6 分部分导出pdf,其它部分导出,只有其中的两页总回答:1. 是直接提示导出失败2. 还是导出了,但这两页没有内容啊回答:1. 1)把页面内的东西选中的另一个,删除这两页,重。2)看看你的图片,是不是实际图

    更多相关内容
  • InDesign 导出印刷用PDF时如何设置?

    千次阅读 2021-01-17 01:40:52
    摘要:用ID排版时,最终文件往往要导出pdf格式的文件用于印刷,而导出设置在细节上往往会出现一些让人疑惑的选项。相关视频教程学习推荐: 平面设计—零基础到进阶系统讲解【英语中字|正版】7,067人在学总时长:8h ...

    摘要:用ID排版时,最终文件往往要导出成pdf格式的文件用于印刷,而导出设置在细节上往往会出现一些让人疑惑的选项。

    相关视频教程学习推荐:

    8b40300b02ad9ad904b92a83d297c4fa.png

    平面设计—零基础到进阶系统讲解【英语中字|正版】

    7,067人在学

    总时长:8h 15m

    Q

    1.图片置入问题:ai有嵌入选项,而indesign没有(或者我没有找到吧)且ai的图像栅格化直接在本软件内将图像模式改成cmyk。请问indesign是否需要先在ps内改变图像模式?这一条是百度的,有人说需要,又有人说不需要(在导出pdf的时候会自动转换的)

    2.导出pdf选项:除却转曲、pdf预设选择印刷质量、勾选出血设置之外,能详细解释一下输出选项下各个下拉选项的含义?

    A

    1.inDesign 的便利之处就在于图像不需要做类似于Ai 里面的嵌入步骤,图像想要集中处理可以使用打包功能生成单独的图片包,再对图片单独或批量进行处理。至于是否需要在Ps 内改变图像模式,因需而异,图片里面即使有RGB 模式,印前检查也不会提示错误,因为inDesign 的输出选项允许把输出的文档转换成设定的颜色模式。

    InDesign 置入后的文件用「链接」面板管理,可以在该面板中将链接「嵌入」。但对于大型项目,不便于管理的「嵌入」不值得推荐。InDesign 有「打包」功能,可以把所有的链接汇总到一起,所以没有「嵌入」的必要。

    展开全文
  • 然而页面中的图片却始终无法导出成功一、导出的方法查询了许多大佬的帖子,找到了如下导出的方法const PdfDownload = function(domId) {var targetDom = $('#'+domId)//把需要导出pdf内容clone一份,这样对它进行...

    如题项目有需求将一个页面导出为pdf,然而页面中的图片却始终无法导出成功

    一、导出的方法

    查询了许多大佬的帖子,找到了如下导出的方法

    const PdfDownload = function(domId) {var targetDom = $('#'+domId)//把需要导出的pdf内容clone一份,这样对它进行转换、微调等操作时才不会影响原来界面

    var copyDom =targetDom.clone()//新的div宽高跟原来一样,高度设置成自适应,这样才能完整显示节点中的所有内容(比如说表格滚动条中的内容)

    copyDom.width(targetDom.width() + 'px')

    copyDom.height(targetDom.height()+200 + 'px')

    $('body').append(copyDom)//ps:这里一定要先把copyDom append到body下,然后再进行后续的glyphicons2canvas处理,不然会导致图标为空

    //svg2canvas(copyDom)

    //loadImg(copyDom)

    html2canvas(copyDom, {

    onrendered:function(canvas) {var imgData = canvas.toDataURL('image/jpeg')var img = newImage()

    img.src=imgData//根据图片的尺寸设置pdf的规格,要在图片加载成功时执行,之所以要*0.225是因为比例问题

    img.onload = function() {//此处需要注意,pdf横置和竖置两个属性,需要根据宽高的比例来调整,不然会出现显示不完全的问题

    if (this.width > this.height) {var doc = new jsPDF('l', 'mm', [this.width * 0.225, this.height * 0.225])

    }else{var doc = new jsPDF('p', 'mm', [this.width * 0.225, this.height * 0.225])

    }

    doc.addImage(imgData,'jpeg', 0, 0, this.width * 0.225, this.height * 0.225)//根据下载保存成不同的文件名

    doc.save('pdf_' + new Date().getTime() + '.pdf')

    }//删除复制出来的div

    copyDom.remove()

    },

    background:'#FFF',//这里给生成的图片默认背景,不然的话,如果你的html根节点没设置背景的话,会用黑色填充。

    allowTaint: true //避免一些不识别的图片干扰,默认为false,遇到不识别的图片干扰则会停止处理html2canvas

    })

    }

    二、初步测试的结果

    有了上面的方法当然迫不及待的进行测试-- 测试导出页面如下

    导出成功结果如下

    这一测试发现并没有得到自己期望的结果,页面大致导出成功了,可是页面原本的头像图片怎么就没导出来呢?

    三、使用f12查找原油

    打开浏览器使用另一个用户进行测试发现… 该用户没有上传头像,我默认加载了一张本地的图片作为用户默认头像

    而加载为默认图片的页面使用jsPdf将其进行导出,这个头像图片就可以成功被下载下来

    于是做出如下推测…

    经过这一测试初步断定是js 中同源策略所引起的跨域请求图片,所导致的jsPdf读取页面中图片失败的问题

    四、方案一

    到目前,问题虽然初步已锁定,但是还没有切实可行的解决方案,这咋办?

    首先想到:就是把图片从服务器下载到本地

    于是想到了使用nodeJS http+fs 从服务器将文件下载,然后将其写入到本地文件夹中

    如参考 https://www.jianshu.com/p/28e3de79fd49

    var http = require(''http'),fs = require('fs');

    http.get(path,function(req,res){ //path为网络图片地址

    var imgData ='';

    req.setEncoding('binary');

    req.on('data',function(chunk){

    imgData += chunk

    })

    req.on('end',function(){

    fs.writeFile(path,imgData,'binary',function(err){ //path为本地路径例如public/logo.png

    if(err){console.log('保存出错!')}else{

    console.log('保存成功!')

    }

    })

    })

    })

    再重新 为节点添加一个img 标签,将其url指定为刚才下载的文件地址,在pdf 下载完成后再使用

    如下方法将其删除掉 参考 https://blog.csdn.net/dongmelon/article/details/102456717

    var fs = require('fs')/**

    *

    * @param {*} path 必传参数可以是文件夹可以是文件

    * @param {*} reservePath 保存path目录 path值与reservePath值一样就保存*/

    functiondelFile(path, reservePath) {if(fs.existsSync(path)) {if(fs.statSync(path).isDirectory()) {

    let files=fs.readdirSync(path);

    files.forEach((file, index)=>{

    let currentPath= path + "/" +file;if(fs.statSync(currentPath).isDirectory()) {

    delFile(currentPath, reservePath);

    }else{

    fs.unlinkSync(currentPath);

    }

    });if (path !=reservePath) {

    fs.rmdirSync(path);

    }

    }else{

    fs.unlinkSync(path);

    }

    }

    }

    后来经测试,很显然这个想法很幼稚(浏览器如何使用nodeJS?), 最终测试这种方法是不可行的!

    五、方案二

    /**

    *

    * 查询目标容器中images

    * 使用nodejs进行图片下载到本地

    * 增加一个image 使用本地src

    * @param targetElem {Element object}*/

    functionloadImg(targetElem){var svgElem = targetElem.find('img')

    svgElem.each(function(index, node) {var parentNode =node.parentNode//通过构造函数来创建的 img 实例,在赋予 src 值后就会立刻下载图片,相比 createElement() 创建 省去了 append(),也就避免了文档冗余和污染

    var Img = newImage(),

    dataURL='';

    Img.src=url;

    Img.οnlοad=function(){ //要先确保图片完整获取到,这是个异步事件

    var canvas = document.createElement("canvas"), //创建canvas元素

    width=Img.width, //确保canvas的尺寸和图片一样

    height=Img.height;

    canvas.width=width;

    canvas.height=height;

    canvas.getContext("2d").drawImage(Img,0,0,width,height); //将图片绘制到canvas中

    dataURL=canvas.toDataURL('image/jpeg'); //转换图片为dataURL

    };

    parentNode.appendChild(canvas)

    })

    }

    后来又遇到了Uncaught SecurityError: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported.

    根据资料https://blog.csdn.net/u013040887/article/details/78986598 在方法中新增node.setAttribute('crossOrigin', 'anonymous'); 遗憾的是最后并未成功解决问题,依然需要重新寻找新的解决方案…

    六、方案三

    然后想到了使用XMLHttpRequest先把图片下载回来再重新为img 赋值

    于是 增加如下方法使用 xmlHttpRequest进行图片下载

    functiondownloadByXmlhttprequest(imgDom,cb){var xhr = newXMLHttpRequest()

    xhr.onreadystatechange= function() {varblobif(xhr.readyState === 4){//使用URL.createObjectURL将Blob对象转换为可访问的url地址

    var src =URL.createObjectURL(xhr.response)

    console.log(src)

    imgDom.src=src

    cb(src)

    }

    }

    xhr.open('GET',imgDom.src, true)//设置响应数据格式为Blob对象

    xhr.responseType = 'blob'

    //设置请求头

    xhr.setRequestHeader('X-Requested-With', 'OpenAPIRequest')

    xhr.send()

    }

    但是其中又遇到了请求未携带cookie而失败问题

    最终经过如下多次测试,终于成功了

    七、完整代码

    最后完成这些操作的完整代码(这里我是写了一个外部js)如下

    1、使用XMLHttpRequest进行图片二次下载

    /**

    * 使用XMLHttpRequest进行图片二次下载

    * @param imgDom {Objec} target object

    * @param cb{Object}success callback*/

    functiondownloadByXmlhttprequest(imgDom,cb){var xhr = newXMLHttpRequest()

    xhr.onreadystatechange= function() {if(xhr.readyState === 4){//使用URL.createObjectURL将Blob对象转换为可访问的url地址

    var src =URL.createObjectURL(xhr.response)

    imgDom.src=src

    cb(src)

    }

    }

    xhr.open('GET',imgDom.src, true)

    xhr.withCredentials= true;//设置响应数据格式为Blob对象

    xhr.responseType = 'blob'

    //设置请求头

    xhr.setRequestHeader('X-Requested-With', 'OpenAPIRequest')

    xhr.send()

    }

    2、转换页面的图片

    functionimgConvert(targetElem,cb){var svgElem = targetElem.find('img')

    svgElem.each(function(index, node) {var parentNode =node.parentNode

    downloadByXmlhttprequest(node,cb)

    })

    }

    3、html2canvas执行下载

    functionexecuteDown(copyDom){

    html2canvas(copyDom, {

    onrendered:function(canvas) {var imgData = canvas.toDataURL('image/jpeg')var img = newImage()

    img.src=imgData//根据图片的尺寸设置pdf的规格,要在图片加载成功时执行,之所以要*0.225是因为比例问题

    img.onload = function() {//此处需要注意,pdf横置和竖置两个属性,需要根据宽高的比例来调整,不然会出现显示不完全的问题

    if (this.width > this.height) {var doc = new jsPDF('l', 'mm', [this.width * 0.225, this.height * 0.225])

    }else{var doc = new jsPDF('p', 'mm', [this.width * 0.225, this.height * 0.225])

    }

    doc.addImage(imgData,'jpeg', 0, 0, this.width * 0.225, this.height * 0.225)//根据下载保存成不同的文件名

    doc.save('pdf_' + new Date().getTime() + '.pdf')

    }//删除复制出来的div

    copyDom.remove()

    },

    background:'#FFF',//这里给生成的图片默认背景,不然的话,如果你的html根节点没设置背景的话,会用黑色填充。

    allowTaint: true //避免一些不识别的图片干扰,默认为false,遇到不识别的图片干扰则会停止处理html2canvas

    })

    }

    4、供外部调用的导出方法

    const PdfDownload = function(domId) {var targetDom = $('#'+domId)//把需要导出的pdf内容clone一份,这样对它进行转换、微调等操作时才不会影响原来界面

    var copyDom =targetDom.clone()//新的div宽高跟原来一样,高度设置成自适应,这样才能完整显示节点中的所有内容(比如说表格滚动条中的内容)

    copyDom.width(targetDom.width() + 'px')

    copyDom.height(targetDom.height()+200 + 'px')

    $('body').append(copyDom)//ps:这里一定要先把copyDom append到body下,然后再进行后续的glyphicons2canvas处理,不然会导致图标为空

    //svg2canvas(copyDom)

    //loadImg(copyDom)

    imgConvert(copyDom,function(res){

    executeDown(copyDom)

    })

    }

    export { PdfDownload }

    最后这里使用到的 html2canvas-0.4.1 , jquery-2.1.4.min , jspdf.min 如下

    插件网盘https://pan.baidu.com/s/1MMNOjmU8H3ebmWdB5nBzqw 提取码 jg7q

    展开全文
  • 1、安装html2canvas: npm install --save html2canvas 2.在index.html引入... <...可能是我网络不好的原因,引入经常失败,我将jspdf文件下载下来放到了本地 文件下载链接:https://download.csdn.net/downloa

    1、安装html2canvas:

    npm install --save html2canvas

    2.在index.html引入jspdf

    <script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.2/jspdf.debug.js"></script>

    可能是我网络不好的原因,引入经常失败,我将jspdf文件下载下来放到了本地

    文件下载链接:https://download.csdn.net/download/Mr_Shil/23366319

    3.全局生成pdf方法

    // 导出页面为PDF格式
    import html2Canvas from 'html2canvas'
    //import JsPDF from 'jspdf'
    export default {
        install(Vue, options) {
            Vue.prototype.getPdf = function () {
                var title = "报告";
                html2Canvas(document.querySelector('#id'), {
                    allowTaint: true,
                    useCORS: true
                }).then(function (canvas) {
                    console.log(canvas, 9999);
                    let contentWidth = canvas.width
                    let contentHeight = canvas.height
                    let pageHeight = contentWidth / 592.28 * 841.89
                    let leftHeight = contentHeight
                    let position = 0
                    let imgWidth = 595.28
                    let imgHeight = 592.28 / contentWidth * contentHeight
                    let pageData = canvas.toDataURL('image/jpeg', 1.0)
                    let PDF = new jsPDF('', 'pt', 'a4')
                    if (leftHeight < pageHeight) {
                        PDF.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight)
                    } else {
                        while (leftHeight > 0) {
                            PDF.addImage(pageData, 'JPEG', 0, position, imgWidth, imgHeight)
                            leftHeight -= pageHeight
                            position -= 841.89
                            if (leftHeight > 0) {
                                PDF.addPage()
                            }
                        }
                    }
                    PDF.save(title + '.pdf')
                }
                )
            }
        }
    }

    里面的 #id 是想要保存pdf的局部元素的id

    useCORS: true   配置这个属性是为了解决图片保存报错的问题

    4.在main.js里面挂载方法

    import pdf from './utils/pdf'//页面转PDF
    Vue.use(pdf)

    5.在页面调用方法

    <el-button type="primary" class="btn" @click="getPdf()">下载pdf</el-button>

    展开全文
  • 欢迎观看indesign教程,小编带大家学习 InDesign 的基本工具和使用技巧,了解如何将 inDesign 文档另存为 PDF 以供共享和打印。
  • Springboot导出PDF文件

    2021-04-02 15:17:18
    最近项目有一个需求,需要导出 PDF 文件,由于之前并没有做过这方面的需求,从网上花了很长时间才找到相关的资料。最后采用了aspose.words + freemarker的方式解决的问题,制作 freemarker 模板,将 freemarker 模板...
  • node导出pdf网上有不少介绍的文章,之前我也有过这方面的需求,总结一下遇到的问题,给大家点参考建议。 导出PDF大概会遇到以下几个阶段: 1、导出单个PDF文件 2、导出多个PDF文件 下面着重说一下第二种情况,第...
  • php实现批量导出pdf 压缩打包下载

    千次阅读 2019-12-03 16:13:03
    mPDF 是一款强大的 pdf 导出插件 ,可以基本兼容 HTML标签和CSS3样式 首先了解一下 mPDF版本所需环境:https://packagist.org/packages/mpdf/mpdf 我这里仅演示 composer 下载 mPDFV7.1 的版本 (如果...
  • 上节讲到配置wkhtmltopdf,这节讲下如何批量操作首先讲下wkhtmltopdf如何使用直接命令行输入:php使用shell_exec('wkhtmltopdfhttp://www.baidu.com/ baidu.pdf') //注:中间两个空格隔开?>当前路径下会生成一个...
  • 最近项目中遇到需要预览和导出pdf的需求,经过和项目经理的探讨,最后决定使用iText5来导出pdf 具体操作步骤如下: 1、首先创建一个doc格式的word文档,转换为html格式 word模板转html链接地址 2、替换要填充的内容...
  • 后端导出PDF文件(付前端实现代码)

    千次阅读 2020-09-24 15:49:19
    Java后端导出pdf文件,前端通过url请求获取后端的文件流,导出下载
  • SpringBoot加itext实现PDF导出

    千次阅读 热门讨论 2019-04-23 16:45:47
    场景 iText是一个能够快速产生PDF文件的java类库。iText的java类对于那些要产生包含文本,表格,图形的只读文档是很有用的。它的类库尤其与java Servlet有...Itext实现导出PDF常用方法说明 https://blog.csdn.ne...
  • 导出pdf前台

    2020-07-17 18:15:49
    id=" this.$axios .get(url + row.id.toString(),{responseType: "arraybuffer"}) .then(function(res) { let blob = new Blob([res.data], {type: "application/pdf"}); let filename = "回执-" + (new Date()....
  • vue 项目pdf导出问题

    2020-11-06 12:12:34
    一、新建文件htmlToPdf.js ...import JsPDF from ‘jspdf’ export default { install(Vue, options) { Vue.prototype.getPdf = function () { window.pageYOffset = 0; document.documentElement.scrollTop = 0
  • 文章目录pom.xml依赖生成PDF工具类控制器层演示图 pom.xml依赖 <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.13</...
  • 最近碰见个需求需要实现导出pdf文件,上网查了下代码资料总结了以下代码、可以成功的实现导出pdf文件。 在编码前需要在网上下载个itextsharp.dll,此程序集是必备的。楼主下载的是5.0版本,之前下了个5.4的似乎不...
  • .Net C# itextsharp导出PDF文件打印

    千次阅读 2018-12-27 16:00:39
    itextsharp导出PDF DLL类库下载 itextsharp,一个用于生成PDF文件的类库。 示例代码 简略版,数据需自行获取 后台代码(Upload.aspx.cs 类) protected void Page_Load(object sender, EventArgs e) { ...
  • datatable 导出无乱码中文pdf文件

    千次阅读 2018-03-29 17:10:11
    datatable 导出无乱码中文pdf文件  我一个前端程序员,最近...开始尝试导出pdf文件  首先,介绍下我们的项目背景:UI使用datatable。当我去看datatable官网的时候,很高兴,有现成的导出插件:datatable导出插件...
  • html导出pdf的四种方式

    千次阅读 2018-11-01 17:20:00
    将html页面导出pdf文件并打印,可以直接在windows下使用Ctrl + P,苹果下⌘ + P。 如果需要用代码实现,可以考虑jsPDF、iText、wkhtmltopdf等方式。 以下是三种方式代码对比: 方式优点缺点分页图片表格...
  • Vue中手动导出Element表格为pdf/word/excel格式

    千次阅读 多人点赞 2020-07-06 15:41:22
    在vue中将element的表格进行导出pdf/word/excel样式,需要进行一些处理,比较麻烦 网页样式 导出为表格 导出为word 导出PDF 一、编写工具函数和前置对element样式的修改函数 @param {String} inerHTML 需要...
  • java实现导出表单word与pdf功能 前文: 实现导出功能有很多方法,可以使用freemarker定义模板修改其为xml,在改成ftl,需要可以私信我, 本文用的是itextpdf自定义模板,虽然自己制表比较繁琐但是简单易懂 环境 idea...
  • grafana导出pdf(亲测好使) 一、grafana-reporter的安装 下载go,并配置相关路径,一搜索一大堆 git下载grafana-reporter到$GOPATH/src/下 go get github.com/IzakMarais/reporter/... 此处插一句,由于github.com...
  • java 使用POI导出pdf,通过浏览器直接下载
  • uniapp页面转为pdf文件并下载(导出

    千次阅读 热门讨论 2021-04-01 17:30:51
    uniapp页面转为pdf文件并下载(导出)一、cmd指令安装 vue-print-nb --save二、定义全局函数,创建htmlToPdf.js文件四、在main.js函数中使用定义的函数文件。五、使用方法:需要导出的ui部分.定义id为"pdfDom".此...
  • 项目导出pdf前台导出pdf的两种方式html2canvas.js & pdf.js简介使用问题及解决方法浏览器自带的打印功能 & print.js简介使用问题及解决方法后台输出pdf利用iText导出 前台导出pdf的两种方式 ...
  • word转pdf 在网上找了很多,就这版能用,其他的试过可惜都失败了 先下载jar maven仓库找不到 链接: https://pan.baidu.com/s/13TIfBGFDgDJlxVonzUpgQQ 提取码: sbkg 一、jar放到本地仓库里面 <dependency> &...
  • JS 如何将 HTML 页面导出PDF

    万次阅读 多人点赞 2017-02-23 16:39:58
    好久没在CSDN写博客了,因为都放在了个人网站了哈 我这里有个需求,就是...参考了这两个开源项目的文档,自己写,失败导出pdf是空的。 参考 stackoverflow 代码,同样失败,同样只导出空白的pdf,他们咋成功了?
  • PHPExcel gitub下载地址:... //鼠标移上去连接提示信息 前端layui导出按钮 <button type="button" lay-submit="" class="layui-btn layui-btn-normal" lay-filter="uploadImg" id="export"> 导出本页数据</button>

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,062
精华内容 1,624
热门标签
关键字:

id导出pdf失败怎么解决

友情链接: chat.rar