早在2010年,就有人声称自己有能力做到这一点:
http://www.mobileread.com/forums/showthread.php?t=103847
“Kindle将其注释存储在Mobipocket (".mobi")文件中,用于每个文档,并存储在一个名为"My Clippings.txt”的长文本文件中。在这篇文章中,我描述了一个将这些注释与计算机上相应文档的PDF版本同步的系统。
概述
这个系统包含在一个Applescript中,它解析我的剪报文件并控制浏览PDF阅读器。脚本首先解析剪报文件。然后,它搜索剪报并隔离来自kindle上的文档的任何内容,与当前打开的PDF文件(“相关剪报”)的文件名相匹配。然后,脚本遍历每一个相关的剪报,在PDF文档中找到匹配的文本或位置,并在适当的情况下应用高亮或添加注释。最终结果是一个带注释的、可打印的PDF文档,它与kindle上的文档相匹配。
您可以在这里下载脚本:http://dl.dropbox.com/u/2541109/KindleClippings.scpt。在运行脚本之前,请确保更改MyEmail的值以匹配您的发送地址,并验证MyClippingsFile中定义的Kindle挂载点是否正确。你也需要免费浏览PDF阅读器。
要使用它,发送或复制文档文件到您的kindle。记住,kindle支持RTF、DOC、TXT和其他常见的文本格式,它会在内部将它们转换成MobiPocket文件,以便于阅读。做点笔记。然后将刚发送到kindle的相同文档转换成PDF格式,例如使用Mac中的打印到PDF功能。确保文件名保持不变。以浏览方式打开同样的PDF并运行脚本。高光和注释应出现在PDF中。
如果您对此有兴趣,请在这里阅读更多我的博客:不再可用
可悲的是,他的剧本和他的博客都没有了。
你们知道这有可能吗?我一直在寻找这种功能,但哪儿也找不到。
发布于 2022-07-06 12:09:35
这段代码使用python和PyMuPDF,工作如下:
import fitz
# the document to annotate
doc = fitz.open("text_to_highlight.pdf")
# the text to be marked
text_list = [
"first piece of text",
"second piece of text",
"third piece of text"
]
for page in doc:
for text in text_list:
rl = page.search_for(text, quads = True)
page.add_highlight_annot(rl)
# save to a new PDF
doc.save("text_annotated.pdf")最初的‘我的Clippings.txt’应该被操纵,stringr可以工作,但我发现更有用的是在崇高文本中使用多种选择的文本--目标是以text_list的形式列出一个亮点列表。
发布于 2015-03-02 01:34:40
我正在尝试使用Python + Windows宏创建者(我是Win 7用户)来完成这个任务。您可以使用这种方法将文件保存为RTF、DOCX、PDF等。到目前为止,它是相当有效的。首先要注意2件事:
1-‘我的剪报’文件只保存文本和页面,而不是保存页面上的位置(例如,如果您在第15页突出显示“哺乳动物是动物”,它会给出这一行和页码,但是如果第15页上有多个“哺乳动物是动物”,则不可能知道您突出显示的是哪一个)。这是特别坏的,当你强调一个通用的词,如“动物”或“的”。如果你通过按一个词来发表评论,这个词是你能得到的关于评论中所指内容的唯一信息(例如,我按下了“动物”,菜单弹出了,我选择了‘注释’。如果“动物”出现在第15页上20次,我不知道我的评论指的是哪一种)。
2-检索页面上位置的唯一方法是分析*.pds和*.pdt文件,在Kindle的驱动器(“Documents”)中的*.sdr文件夹中。我看不懂这些文件。
在Python中,可以运行一段简单的代码,从“我的剪报”中提取您想要的信息。然后,您可以使用宏创建者自动复制文本并将其注释到PDF (例如,使用Acrobat ),然后保存PDF文件。
以Acrobat为例:
假设我想将我所有的亮点保存到PDF文件中。首先,我将在Python上创建一个*.txt文件,并运行一个脚本将与突出显示相关的所有字符串复制到这个新的txt文件(即突出显示的文本&页码)。下面是这样的代码示例(但是首先,将"My Clippings.txt“文件复制并粘贴到IDE start文件夹中,例如:C:\Python27 27):
#for python 2.7.6
with open('My Clippings.txt','r') as rf:
with open('My Clippings Output.txt','w') as wf:
access = 0
bookTitle = 'Book Title'#put the book file's name as it's written in "My Clippings.txt"
for x in rf:
if access == 1:
wf.write(x)
if bookTitle in x:
access = 1
#for highlights only, instead of all annotations, include this if statement:
if (' | Added on ' in x) and ('- Your Note ' in x) or ('- Your Bookmark ' in x):
access = 0
if x == '==========\n':
access = 0然后,我将创建一个宏来复制“Clippings.txt Output.txt”文件中的页码(它位于放置"My Clippings.txt“文件的同一个文件夹中),粘贴在Acrobat”页面窗口“中,在页面中找到(ctrl+f)字符串,然后按”突出显示“。完成了!
但是Acrobat有一个陷阱,搜索/查找函数的限制是28个字符,所以突出显示的文本不能超过这一点。我还是不知道如何绕过这个限制..。我在这里提出了这个问题,https://superuser.com/questions/884221/how-to-search-and-highlight-long-passages-in-a-pdf-file。为了绕过Acrobat上的28个字符限制,您可以使用“shift”+“右箭头28次”对宏进行编程,然后使用“剪切”代替“复制”。
有许多免费使用和libre宏创建者,只要谷歌和选择一个你最喜欢的。对于Windows,我最喜欢的是普洛弗的宏创造者。如果你对这个过程有任何疑问,你可以在这里发表评论或者下午我。我希望你在这里发表意见,这样我才能改进答案
https://stackoverflow.com/questions/25985819
复制相似问题