挑战:打印多个Word文档(最多2到10个文档)到单个PDF
可用数据:文档及其要打印的位置
使用的逻辑:遍历包含所有文档路径的查询的记录集
撞墙:无法找到最佳方法吗?
Dim WordObj As Object
Set WordObj = CreateObject("Word.Application")
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb
Dim strSql As String
strSql = QryLinkstoDocs
Set rs = db.OpenRecordset(strSql, dbOpenSnapshot)
Dim fileName As String
Do While Not rs.EOF
fileName = rs.Fields(0) 'This field has the link to the files
WordObj.Documents.Open filename
'WordObj.PrintOut Background:=False 'This works for single file
WordObj.PrintToFile "C:\Temp.pdf", collate = True
rs.MoveNext
Loop
WordObj.Quit
Set WordObj = Nothing
答案 0 :(得分:0)
这完成了这项工作:
基本上我创建了一个新单词doc并将每个文件中的内容插入到它中,最后,将单个doc打印到PDF。
Do While Not rs.EOF
fName = rs.Fields(0)
If FileExists(fName) Then
oApp.Selection.InsertFile _
FileName:=CStr(fName), Range:=""
oApp.Selection.InsertBreak
Else
Debug.Print "The File is missing"
End If
rs.MoveNext
Loop
oApp.Activedocument.PrintOut Background:=False
答案 1 :(得分:-1)
我一直都很喜欢pdftk (pdf toolkit)。我没有使用它,因为他们添加了GUI并增加了功能,但是有一个非常简单的命令行界面,允许您组合,分离等PDF。您可以在Access中编写一个简单的脚本,生成要组合的文件列表,然后发送命令行代码以执行。
他们自述的一个例子:
Join in1.pdf and in2.pdf into a new PDF, out1.pdf
pdftk in1.pdf in2.pdf cat output out1.pdf
or (using handles):
pdftk A=in1.pdf B=in2.pdf cat A B output out1.pdf
or (using wildcards):
pdftk *.pdf cat output combined.pdf