以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  修改pdf属性  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=100045)

--  作者:huhu
--  发布时间:2017/5/3 16:46:00
--  修改pdf属性
想把标题和作者内容都去掉。有什么办法?

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20170503164222.png
图片点击可在新窗口打开查看


--  作者:有点色
--  发布时间:2017/5/3 17:07:00
--  

 

需要的dll

 

http://pan.baidu.com/s/1i5FpQvV

 

代码

 

Dim doc As org.apache.pdfbox.pdmodel.PDDocument = Nothing
Try
    doc = org.apache.pdfbox.pdmodel.PDDocument.load("g:\\test2.pdf")
    Dim info = doc.getDocumentInformation()
    info.setAuthor("作者")
    info.setKeywords("关键字")
    info.setSubject("主题")
    info.setTitle("标题")
    info.setCreator("制作系统")
    doc.save("g:\\test5.pdf")
catch ex As exception
    msgbox(ex.message)
Finally
    If doc IsNot Nothing Then
        doc.close()
    End If
End Try

[此贴子已经被作者于2017/5/3 17:07:51编辑过]

--  作者:有点色
--  发布时间:2017/5/3 17:22:00
--  

简单点,用 itextsharp 也可以

 

Dim reader As New iTextSharp.text.pdf.PdfReader("G:\\test2.pdf")
Dim document As New  iTextSharp.text.Document(reader.GetPageSizeWithRotation(1))
Dim n As Integer = reader.NumberOfPages
Dim baos As New IO.FileStream("g:\\test8.pdf", IO.FileMode.Create, IO.FileAccess.Write)
Dim copy As New  iTextSharp.text.pdf.PdfCopy(document, baos)
copy.ViewerPreferences =  iTextSharp.text.pdf.PdfWriter.HideToolbar Or iTextSharp.text.pdf.PdfWriter.HideMenubar Or iTextSharp.text.pdf.PdfWriter.HideWindowUI
\'往pdf中写入内容
document.Open()
For i As Integer = 1 To n
    Dim page As  iTextSharp.text.pdf.PdfImportedPage = copy.GetImportedPage(reader, i)
    copy.AddPage(page)
Next
document.addTitle("测试")
document.addSubject("测试")
document.addKeywords("测试")
document.addAuthor("测试")
document.addCreator("测试")
document.addHeader("测试", "测试")

document.Close()
reader.Close()

 

 

下载信息  [文件大小:1.3 MB  下载次数:5]
图片点击可在新窗口打开查看点击浏览该文件:itextsharp.zip


--  作者:huhu
--  发布时间:2017/5/3 17:44:00
--  
Dim doc As org.apache.pdfbox.pdmodel.PDDocument = Nothing
Try
    doc = org.apache.pdfbox.pdmodel.PDDocument.load("g:\\test2.pdf")
    Dim info = doc.getDocumentInformation()
    info.setAuthor("作者")
    info.setKeywords("关键字")
    info.setSubject("主题")
    info.setTitle("标题")
    info.setCreator("制作系统")
    doc.save("g:\\test5.pdf")
catch ex As exception
    msgbox(ex.message)
Finally
    If doc IsNot Nothing Then
        doc.close()
    End If
End Try

老师,能帮我把这段代码注释一下么。这样好理解点。

--  作者:有点色
--  发布时间:2017/5/3 17:46:00
--  

 载入test2.pdf

 

 设置作者、主题、关键字等等信息

 

 另存为test5.pdf


--  作者:huhu
--  发布时间:2017/5/3 17:55:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:bd.png
图片点击可在新窗口打开查看
在搜索里面发现还是没改。
但属性有改了。是怎么回事?

图片点击可在新窗口打开查看此主题相关图片如下:22.png
图片点击可在新窗口打开查看


--  作者:有点色
--  发布时间:2017/5/3 18:00:00
--  
 你用的是什么软件打开的?你的pdf文件上传上来看看?
--  作者:huhu
--  发布时间:2017/5/3 18:15:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20170503180129.png
图片点击可在新窗口打开查看

在自定义里面,有一个company,它的值是bdcom。想把这个值也改为company。

--  作者:有点色
--  发布时间:2017/5/3 18:33:00
--  
Dim doc As org.apache.pdfbox.pdmodel.PDDocument = Nothing
Try
    doc = org.apache.pdfbox.pdmodel.PDDocument.load("g:\\test2.pdf")
    Dim info = doc.getDocumentInformation()
    info.setAuthor("作者")
    info.setKeywords("关键字")
    info.setSubject("主题")
    info.setTitle("标题")
    info.setCreator("制作系统")
    Info.setCustomMetadataValue("abc", "123")
    Info.setCustomMetadataValue("Company", "456")
    

    \'For Each o As object In Info.Gettype.getmethods
    \'    output.show(o.name)
    \'Next
    doc.save("g:\\test5.pdf")
catch ex As exception
    msgbox(ex.message)
Finally
    If doc IsNot Nothing Then
        doc.close()
    End If
End Try
[此贴子已经被作者于2017/5/3 18:32:56编辑过]

--  作者:huhu
--  发布时间:2017/5/4 13:06:00
--  
多问一句。
上面的是在ft实现的。
有没有方法在vs实现,比如上面的dll和代码怎么在vs里面弄?