精华内容
下载资源
问答
  • 怎样在PDF文件上添加印章

    万次阅读 2017-10-24 17:54:45
    1、首先将需要添加制公司的印章的文件转换成.pdf文件 2、从Adobe 官网下载Adobe Acrobat XI Pro 这款软件并安装到我们的电脑,安装完后打开软件,界面如下: 3、准备好我们要添加水印的pdf文档,用Adobe ...

    1、首先将需要添加制公司的印章的文件转换成.pdf文件

    2、从Adobe 官网上下载Adobe Acrobat XI Pro 这款软件并安装到我们的电脑上,安装完后打开软件,界面如下:


    3、准备好我们要添加水印的pdf文档,用Adobe Acrobat XI打开,我们可以看到下面的文档是没有水印的


    4、点击“工具”


    5、点击“页面”


    6、点击“背景”


    7、点击“添加背景”

     8、选中“文件”旁的单选按钮,然后选中印章图片


    9、点击“确定”然后保存PDF文件就完成了


    展开全文
  • 档中添加印章可以起一定的作用,比如,防止文件随意被使用,或者确保文档...C#添加图片印章其实也有很多实现方法,这里我使用的是免费的第三方软件Free Spire.PDF,向大家阐述如何以编程的方式在PDF文件中添加图片印
  • 一、背景记录一下开发pdf文件预览时遇到的问题,主要是水印和电子签章问题。由于网上也查了不了方案,但解决方案都不适用生产环境,所以决定贴一下自己的方案。二、方案介绍目前主流的移动端pdf文件预览库都是...

    一、背景

    记录一下在开发pdf文件预览时遇到的问题,主要是水印和电子签章问题。由于网上也查了不了方案,但解决方案都不适用在生产环境,所以决定贴一下自己的方案。

    二、方案介绍

    目前主流的移动端pdf文件预览库都是基于mozilla的pdf.js,本文要介绍的两个库也不例外,分别是react的react-pdf和vue的vue-pdf。

    闲话少说,直接上代码

    1.react-pdf方案,以下代码就完成一个pdf的预览组件了

    import { Document, Page } from 'react-pdf';

    export default function PdfPreview({ fileUrl }: Props) {

    const [numPages, setNumPages] = React.useState(null);

    function onDocumentLoadSuccess(document) {

    const { numPages } = document;

    setNumPages(numPages);

    }

    return (

    file={fileUrl}

    onLoadSuccess={onDocumentLoadSuccess}

    loading="意向书加载中..."

    >

    {

    Array.from(

    new Array(numPages),

    (el, index) => (

    key={`page_${index + 1}`}

    pageNumber={index + 1}

    />

    ),

    )

    }

    )

    }

    复制代码

    2.vue-pdf方案

    v-for="i in numPages"

    :key="i"

    :src="src"

    :page="i"

    >

    import pdf from 'vue-pdf'

    export default {

    components: { pdf },

    data() {

    return {

    src: pdfUrl,

    numPages: undefined,

    }

    },

    mounted() {

    this.src.promise.then(pdf=>{

    this.numPages = pdf.numPages;

    }).catch(err=>{

    console.log('err',err);

    }

    },

    }

    复制代码

    上面两种方案就能完成基本的多页pdf文件在线预览了,美中不足的是当pdf文件中想添加水印和电子章时满足不了,特别是对于一些交易场景或者电子合同场景。如果你默认使用了水印和电子签章,在控制台会看到有这样的warning

    Warning: Unimplemented widget field type "Sig", falling back to base field type. pdf.js:581 和 Warning: Error during font loading: The CMap "baseUrl" parameter must be specified, ensure that the "cMapUrl" and "cMapPacked" API parameters are provided.

    第一个warning报的是关于电子签章的问题,第二个warning报的是水印的问题,带着这两个问题去搜索引擎一搜,会有很多的结果,循着这些提示,你翻到这两个库的源码及库依赖的pdfjs-dist源码,然后你会发现,签章的问题是因为下面这一段代码

    if (data.fieldType === 'Sig') {

    data.fieldValue = null;

    _this3.setFlags(_util.AnnotationFlag.HIDDEN);

    }

    复制代码

    注释掉,电子章就正常出来了,这个方法对react-pdf和vue-pdf库都有效,但隐隐感觉那里不对,注释掉的是本地的代码,生产环境怎么办?且看下文。

    而水印的问题是因为这两个库中的字体文件(pdfjs-dist/cmaps)在webpack打包后并不会被打包进来(react-pdf和vue-pdf的情况还不一样,下面会补充)。解决方案也很简单,一种是通过webpack的方式把字体文件打包到静态文件中,并引入;另一种是直接引入对应字体文件的cdn地址,或官方提供的https://unpkg.com/pdfjs-dist@2.0.943/cmaps/,代码如下(只截取部分,其余部分和上面的代码相同):

    react-pdf

    file={fileUrl}

    onLoadSuccess={onDocumentLoadSuccess}

    loading="意向书加载中..."

    options={{

    cMapUrl: 'https://unpkg.com/pdfjs-dist@2.0.943/cmaps/',

    cMapPacked: true,

    }}

    >

    复制代码

    如果你用的是vue,到这里你会发现vue-pdf没提供类似的方法,哭...不管怎样,薪水得拿,需求就要解决,于是你从githug上的readme文档中的api区域发现有这样的字眼,PDFJS.getDocument().带着好奇和编码的直觉,你觉得需要点进去看看,然后发现这个方法里有很多的参数,其中一个和字体相关,即:

    /*

    * @property {Object} CMapReaderFactory - (optional) The factory that will be

    * used when reading built-in CMap files. Providing a custom factory is useful

    * for environments without `XMLHttpRequest` support, such as e.g. Node.js.

    * The default value is {DOMCMapReaderFactory}.

    */

    复制代码

    然后结合网上看到的蛛丝马迹,vue-pdf库下的水印问题也愉快解决了,上代码:

    import CMapReaderFactory from 'vue-pdf/src/CMapReaderFactory.js'

    data() {

    return {

    src: pdf.createLoadingTask(

    {

    url: pdfUrl,

    CMapReaderFactory,

    }

    ),

    }

    },

    复制代码

    如图(水印已经显示出来了,红色标注是打码):61cacd0180dbd7caadff6b122da1d28a.png

    到这里,水印是解决了,签章呢...革命尚未成功,同志仍需要努力,继续雄起coding...

    三、终章

    关于签章,注释库源码是行不通了,但是显然得通过注释掉对应的代码,去看mozillia/pdfjs的issue,也说了,出于一些原因将签章功能屏蔽了,所以我们的方法也是注释代码,只是换一种方法,将库依赖的部分代码抽出来,注释后再行引用,比如上传cdn后再引用这部分代码。巧的是,react-pdf留有这样的口子,用以引用相应的代码,如下:

    import { Document, Page, pdfjs } from 'react-pdf';

    pdfjs.GlobalWorkerOptions.workerSrc = 'https://cdn.jsdelivr.net/npm/pdfjs-dist@2.0.943/build/pdf.worker.min.js';

    复制代码

    从react-pdf中多import一个pdfjs,然后换上自己注释掉以下代码的worker.js

    if (data.fieldType === 'Sig') {

    data.fieldValue = null;

    _this3.setFlags(_util.AnnotationFlag.HIDDEN);

    }

    复制代码

    上面的cdn地址 worker.min.js是我贴的一个例子代码,是没有注释掉这部分代码的,有需要的同学自己去github上下载并自行去掉相应代码,有一个注意点就是用的pdfjs-dist和pdf.worker.min.js的版本最好一致,不然可能出现pdf文件不出来的问题,到这react-pdf的pdf文件预览水印和签章就完美解决了。等等,还有一个vue-pdf...

    前方的坑虽然太凄迷,请在笑容里为我祝福...

    vue-pdf默认只导出了pdf,也就是

    import pdf from 'vue-pdf'

    复制代码

    没有react-pdf那样的口子,可以通过workSrc来修改worker.js,从FJS.getDocument().方法里有看到PDFWorker这样的参数,可以像上面CMapReaderFactory那样传入,但是没搞定这部分,有搞定的同学欢迎分享一下

    * @property {PDFWorker} worker - The worker that will be used for the loading

    * and parsing of the PDF data.

    复制代码

    只能另寻他路...还真给我找到了,话不多说,上代码:

    import PDFJS from 'pdfjs-dist';

    PDFJS.GlobalWorkerOptions.workerSrc = 'https://cdn.jsdelivr.net/npm/pdfjs-dist@2.0.943/build/pdf.worker.min.js';

    //请注意,这里的cdn worker地址是贴的网上的,并且签章那部分代码是没有注释的,直接拿去用是达不到效果的,我也没有现成的资源可提供,只是贴一下方法

    export default {

    data() {

    return {

    pdfDoc: null,

    pages: 0,

    }

    },

    methods: {

    _renderPage (num) {

    this.pdfDoc.getPage(num).then((page) => {

    let canvas = document.getElementById('the-canvas' + num)

    let ctx = canvas.getContext('2d');

    ctx.mozImageSmoothingEnabled = false;

    ctx.webkitImageSmoothingEnabled = false;

    ctx.msImageSmoothingEnabled = false;

    ctx.imageSmoothingEnabled = false;

    let dpr = window.devicePixelRatio || 1

    let bsr = ctx.webkitBackingStorePixelRatio ||

    ctx.mozBackingStorePixelRatio ||

    ctx.msBackingStorePixelRatio ||

    ctx.oBackingStorePixelRatio ||

    ctx.backingStorePixelRatio || 1

    let ratio = dpr / bsr

    let viewport = page.getViewport(screen.availWidth / page.getViewport(1).width);//这是让pdf文件的大小等于视口的大小

    canvas.width = viewport.width * ratio

    canvas.height = viewport.height * ratio//这里会进行压缩,解决模糊问题

    canvas.style.width = viewport.width + 'px'

    canvas.style.height = viewport.height + 'px'

    let renderContext = {

    canvasContext: ctx,

    viewport: viewport,

    transform: [ratio, 0, 0, ratio, 0, 0]//这里会进行放大,解决模糊问题

    }

    page.render(renderContext);

    if (this.pages > num) {

    this._renderPage(num + 1)

    }

    })

    },

    _loadFile (url) {

    PDFJS.getDocument({

    url,

    cMapUrl: 'http://cdn/fonts/cmaps/',//这里同样要引入字体解决水印问题,需自己提供

    cMapPacked: true

    }).promise.then((pdf) => {

    this.pdfDoc = pdf

    this.pages = this.pdfDoc.numPages

    this.$nextTick(() => {

    this._renderPage(1)

    })

    })

    }

    },

    mounted() {

    this._loadFile(pdfUrl);

    }

    }

    复制代码

    四、总结

    夜深了,想说的都在上面代码里了。简单来说这是一篇踩坑贴,由于自己在解决pdf预览问题时花了不少时间,因此总结梳理出来,希望有遇到相同问题的同学,能从此文得到一些帮助。

    b739ec46bb5c46d9c0aa4ce35ba1ea56.png

    关于找一找教程网

    本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。

    本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。

    [移动端pdf预览-水印&电子签章问题]http://www.zyiz.net/tech/detail-129606.html

    展开全文
  • PDF文档添加电子图章的方法

    万次阅读 2018-11-22 17:41:05
    那么如果不会使用PS,该如何实现文档中添加电子图章呢?今天就给各位老铁一种为PDF文档添加电子图章的方法。 工具: PDF编辑器 第一步:先将我们需要加图的文件转换为PDF格式 点击顶部菜单栏“转换”...

    在这电子商务遍地走的社会,电子图章被越来越多地应用在合同、发票和其它电子文档中。那么如果不会使用PS,该如何实现在文档中添加电子图章呢?今天就给各位老铁一种为PDF文档添加电子图章的方法。

    福昕PDF编辑器

    工具: PDF编辑器

    第一步:先将我们需要加图章的文件转换为PDF格式

    给PDF文档添加电子图章的方法

    点击顶部菜单栏“转换”——“文件转换”——“将文件转换为PDF”;

    通过PDF编辑器将我们需要打电子图章的文件转换为PDF格式。

    给PDF文档添加电子图章的方法

    第二步:用PDF编辑器打开文档,点击顶部菜单栏“注释”-“创建”-“创建自定义图章”

    给PDF文档添加电子图章的方法

    第三步:弹出“创建自定义图章”弹窗,点击“浏览”选择需要的电子图章,点击“打开”:

    给PDF文档添加电子图章的方法

    第四步:点击图章后,再对图章的大小进行调整。从“属性”中,可以对图章外观进行修改,包含颜色,不透明度等:

    给PDF文档添加电子图章的方法

    这样精修过的图章,可以和用PS修过的图相媲美。

    给PDF文档添加电子图章的方法

    有关PDF文档添加电子图章使用分享到这里就结束了,希望能帮助到你。

    PDF编辑器中文版https://www.foxitsoftware.cn/pdf-editor/

    展开全文
  • C#添加图片印章其实也有很多实现方法,这里我使用的是免费的第三方软件Free Spire.PDF for .NET,向大家阐述如何以编程的方式在PDF文件中添加图片印章。 具体步骤如下: 此之前,我们需要添加dll文件作为引用。...

     

    文档中添加印章可以起一定的作用,比如,防止文件随意被使用,或者确保文档内容的安全性和权威性。C#添加图片印章其实也有很多实现方法,这里我使用的是免费的第三方软件Free Spire.PDF for .NET,向大家阐述如何以编程的方式在PDF文件中添加图片印章。

    具体步骤如下:

    在此之前,我们需要添加dll文件作为引用。添加引用 → 浏览 → Spire.PDF folder → Bin → .NET 2.0/3.5/4.0/4.5/4.0 ClientProfile → Spire.Pdf.dll.

    第一步:首先新建一个PDF文档对象并加载要添加印章的文档。

    PdfDocument doc = new PdfDocument();
    doc.LoadFromFile(@"E:\Visual Studio\Sample\template7\sample.pdf");

    第二步:获取文档的第一页。

    PdfPageBase page = doc.Pages[0];

    第三步:新建一个PdfRubberStampAnnotation对象,指定其注释的范围和大小。

    PdfRubberStampAnnotation loStamp = new PdfRubberStampAnnotation(new RectangleF(new PointF(-5,-5), new SizeF(60, 60))); 

    第四步:实例化一个PdfAppearance对象。   

    PdfAppearance loApprearance = new PdfAppearance(loStamp);

    第五步:加载用作印章的图片。

    PdfImage image = PdfImage.FromFile(@"C:\Users\Administrator\Pictures\sample.jpg");
    

    第六步:新建一个PDF模板,并在模板里绘制图片。

    PdfTemplate template = new PdfTemplate(160, 160);
    
    template.Graphics.DrawImage(image, 0, 0);
    
    loApprearance.Normal = template;
    
    loStamp.Appearance = loApprearance;

    7步:在PDF文档添加印章。

    page.AnnotationsWidget.Add(loStamp);

    第八步:保存文档。

    string output = "ImageStamp.pdf";
    
    doc.SaveToFile(output);

     

    运行前的pdf文档:

     

    运行后的pdf文档:

    全部代码:

     1 using System;
     2 using System.Drawing;
     3 using System.Windows.Forms;
     4 using Spire.Pdf;
     5 using Spire.Pdf.Annotations;
     6 using Spire.Pdf.Annotations.Appearance;
     7 using Spire.Pdf.Graphics;
     8 
     9 namespace addanimagestamptoaPDF_file
    10 {
    11     public partial class Form1 : Form
    12     {
    13         public Form1()
    14         {
    15             InitializeComponent();
    16         }
    17 
    18         private void button1_Click(object sender, EventArgs e)
    19         {
    20            PdfDocument doc = new PdfDocument();
    21            doc.LoadFromFile(@"E:\Visual Studio\Sample\template7\sample.pdf");
    22   
    23            PdfPageBase page = doc.Pages[0];
    24             
    25            PdfRubberStampAnnotation loStamp = new PdfRubberStampAnnotation(new RectangleF(new PointF(-5, -5), new SizeF(60, 60)));
    26            PdfAppearance loApprearance = new PdfAppearance(loStamp);
    27            PdfImage image = PdfImage.FromFile(@"C:\Users\Administrator\Pictures\sample.jpg");
    28  
    29            PdfTemplate template = new PdfTemplate(160, 160);
    30            template.Graphics.DrawImage(image, 0,0);
    31            loApprearance.Normal = template;
    32            loStamp.Appearance = loApprearance;
    33                
    34            page.AnnotationsWidget.Add(loStamp);
    35 
    36            string output = "ImageStamp.pdf";
    37            doc.SaveToFile(output);
    38     
    39         }
    40     }
    41 }
    View Code

    通过此组件,我们除了可以快速地在PDF文件中添加图片印章,还可以在PDF文件中添加图片和文字水印以及添加图片背景,可以参考一下,也许对你有帮助。谢谢浏览。

    转载于:https://www.cnblogs.com/Yesi/p/6141635.html

    展开全文
  • 本篇文档分享通过Java代码在PDF文档中添加印章的方法。内容将分2部分介绍: 1. 添加图片印章。即通过加载现有的印章(以图片形式),添加PDF指定页面位置 2. 添加动态印章。即加载PDF文档,并动态的添...
  • 演示了如何使用C#、iTextSharp在PDF文档加盖印章添加文本,实现公文流转中的一些功能。
  • C# 如何给PDF文档添加图片印章

    千次阅读 2017-12-25 10:09:02
    PDF添加图片印章是实现文档权威属性的重要手段之一,本文将介绍一种通过Office免费组件Spire.PDF for .NET 来实现PDF添加印章的方法。本文转载自http://www.cnblogs.com/Yesi/p/6141635.html 下面是实现印章添加的...
  • C# 添加PDF印章

    千次阅读 2018-08-17 13:55:32
    因此,本文将介绍一种通过编程来实现PDF图片印章添加的方法。你需要使用的工具有: * Free Spire.PDF for .NET 4.3 (社区版) 注意:编程当中注意引用Spire.PDF.dll文件到项目,该dll文件可以安装文件下的Bin...
  • 本篇随笔介绍如何在在Winform程序中使用Spire.Pdf实现页面添加印章处理,解决这一痛处。 1、在PDF增加印章处理 首先我们来了解下,用Adobe Acrobat Reader 进行文档的印章处理下,看看如何实现的,后面再用软件实现...
  • 将html文件转换成pdf文件,并指定位置添加印章图片
  • 实际,Adobe在PDF标准中已经集成了电子签名功能,今天就先学习一下如何Adobe的PDF工具中,通过使用签名功能实现PDF文档的电子印章应用。大家都知道,Adobe的PDF工具分为Acrobat(收费)和Reader(免费)两大类,...
  • JAVA实现 PDF转换 常用工具类(html转PDF、PDF添加页码、PDF文件下载、PDF添加印章或者水印) package com.bestvike.util; import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import...
  • Java 使用itextpdf添加图片印章到PDF

    千次阅读 2019-07-17 14:38:56
    本文所使用的是itextpdf-5.4.3.jar JAR包下载地址:http://www.java2s.com/Code/Jar/i/Downloaditextpdf543jar.htm import com.itextpdf.text.Image; import com.itextpdf.text.pdf.PdfContentByte; import ...
  • 企业的文控中心发放文件的时候一般需要盖受控,表示文件版本和发放数量受到了控制. 传统操作方式:人工盖章+手工记录 本问先解决人工盖章问题 需要使用的python模块PyPDF2, reportlab 需要建文件夹: pic_source...
  • Java 使用Spire.Pdf添加图片印章到PDF

    千次阅读 2019-05-16 15:03:34
    本文所使用的是免费Java PDF组件Free Spire.PDF for JAVA 注:免费版有页数限制,不能超出10页 import com.spire.pdf.FileFormat; import com.spire.pdf.PdfDocument; import com.spire.pdf.PdfPageBase; import...
  • 如果把一个有签过名的PDF文档进行修改,再验证时可能会有以上的提示:“由本签名控制的文档修订版次尚未被更改,但其后,文档已被更改”。出现这种情况的原因来自于PDF文档独特的存储方式:增量存储,也就是对文档...
  • 盖章完成后,照例开始介绍如何验证了,验证签章就是PDF中的验证签名。操作很简单,可以通过鼠标单击或右键菜单验证签名,也可以通过“填写和签名”视图的“使用证书”——“验证所有签名”(Arcobat中是“高级”——...
  • 2、在pdf指定位置上添加印章图片 实现效果 相关依赖包: <!--html转pdf--> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <...
  • Pdf.js 解决电子印章问题

    千次阅读 2018-04-23 09:41:06
    build/pdf.worker.js中有40280行有这样一段代码,注释掉就显示电子签章,不注释就隐藏电子签章
  • pdf文件,添加电子签名和合同印章。java项目本地导入即可使用
  • pdf 添加骑缝

    万次阅读 2017-11-23 14:00:13
    文章来源:http://blog.csdn.net/running_snail_/article/details/53008578 maven ... com.itextpdf ... itextpdf ...对于无纸化操作pdf文件如果需要打印,一般为了保证完整有效性用数字签名
  • 一些场合,我们往往需要使用印章来给每页文档加盖一个印章,以表示该文档经过某个部门的认证的,常规的做法就是打印文档后盖章,如果需要电子档再行扫描一下。这样的处理,如果文档很多,且仅仅需要电子文档的就很...
  • 图章印章是一种合同票据公文等文件中表明法律效应部门机关权威的重要指示物常见于各种格式的文件文档中对于纸质文档可以手动盖章但对于电子文档则需要通过特定的方法来实现本篇文档分享通过Java代码在PDF文档中...
  • 正如大家所知道的,Adobe Acrobat Automation和Aspose.Pdf for .NET 都允许你通过 编程的方式将文本印章/水印添加PDF文件中。然而,Aspose.Pdf for .NET比Adobe Acrobat Automation 更易于使用。这篇文章中,我...
  • pdf批量添加水印工具

    2018-07-26 11:23:56
    绿色版工具,无需安装。一个非常强大的 PDF 水印工具,可以批量为 PDF 文件添加文本或图片水印,如文件名、公司名、签名、产品图片,从而保护 PDF 文件;它也支持为 PDF 文件添加日期时间、页码、作者等标记信息。
  • 1、打开注释,图章,图章调板 2、选择添加,从文件添加新的图章,并点击确定,文档添加图章即可。 注: 1、福昕PDF编辑器操作类似

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,908
精华内容 1,963
关键字:

如何在pdf上添加电子章