【问题标题】:Systematically annotate a PDF系统地注释 PDF
【发布时间】:2019-09-02 12:46:17
【问题描述】:

我有一个包含数百页的大型 PDF 文件。 PDF 的每一页都包含一个图表,还包含一个唯一标识符(图表编号)。

我对每个图表都有单独的 cmets,并希望将它们插入相应的 PDF 页面,例如图表注释 34 进入包含图表 34 的 PDF 页面。

我目前的方法是使用 Adob​​e 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

之前:

之后:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-25
    • 2012-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多