【问题标题】:Systematically annotate a PDF系统地注释 PDF
【发布时间】:2019-09-02 12:46:17
【问题描述】:
我有一个包含数百页的大型 PDF 文件。 PDF 的每一页都包含一个图表,还包含一个唯一标识符(图表编号)。
我对每个图表都有单独的 cmets,并希望将它们插入相应的 PDF 页面,例如图表注释 34 进入包含图表 34 的 PDF 页面。
我目前的方法是使用 Adobe Acrobat Pro 中的注释工具,手动插入这些 cmets。可以想象,这需要时间。
有没有办法加快这个过程?理想情况下,我会将我的所有 cmets 放在一个电子表格(不太理想,Python)中,旁边有图表代码。然后,cmets 将被写入 PDF。
有什么想法可以做到这一点吗?
【问题讨论】:
标签:
java
python
excel
pdf
【解决方案1】:
您能否将 PDF 转换为文本文件、保存、导入并搜索“cmets”?我不确定逻辑是什么,你也没有在这里发布任何代码,但是我下面的代码将遍历一个文本文件并找到一个字符串的所有事件,假设它被称为“测试”和“应用程序” '。
Sub ReadFile()
Open "C:\Users\rshuell001\Desktop\sample.txt" For Input As #1
lRow = 1
Do While Not EOF(1)
Line Input #1, Data
Data = Application.WorksheetFunction.Trim(Data)
sData = Split(Data, " ")
With Sheet1
lColumn = 1
For intCount = LBound(sData) To UBound(sData)
.Cells(lRow, lColumn) = sData(intCount)
lColumn = lColumn + 1
Next intCount
End With
lRow = lRow + 1
Loop
Close #1
Call CopyOver
End Sub
Sub CopyOver()
Dim Rng As Range, cell As Range
Dim rw As Long
Set Rng = Worksheets("Sheet1").Range("B1:B20")
rw = 1
For Each cell In Rng
If Left(cell.Value, 4) = "test" Then
If Left(cell.Value, 4) = "test" And cell.Offset(0, -1) = "application:" Then
GoTo ExitPoint
Else
Worksheets("Sheet2").Cells(rw, "A") = cell.Value
Worksheets("Sheet2").Cells(rw + 1, "A") = cell.Offset(1, 0)
Worksheets("Sheet2").Cells(rw + 2, "A") = cell.Offset(3, 0)
Worksheets("Sheet2").Cells(rw + 2, "B") = cell.Offset(3, 1)
ExitPoint:
rw = rw + 2
End If
End If
Next
End Sub
之前:
之后: