將 PDF 轉換為 word 或 txt 文件後,會產生很多的換行符,如何自動消除這些非段落換行符、同時保留段落的劃分呢?
01-16
由於內容很多,不可能一行行的弄。具體如所附圖片所示。
可以試試這個非段落換行的excel一鍵宏或者:第一步:將連續兩個換行符全部替換為@@@@;
感謝下余晟大神。。。
Yurii Reply:
February 10th, 2013 at 10:22 pm哦,這樣就清楚了。這個問題,你首先應該把要處理的文本保存為純文本形式(不可以有富格式),然後查證換行符的類型(到底是
,還是
,以下假設是
)。觀察可知換行符有兩種:一種是段落的換行符,通常表現為兩個連續的換行符;一種是非段落的換行符,通常表現為單個連續的換行符(之前和之後都不是換行符)。
要去掉的是後一種換行符(去掉這個字元,兩行的文字就「連起來」了),所以正則表達式應該是(假設換行符為
):(?&測試(?&另外,測試((?&<=.{25,}) )也可以(將25改為每行的字數)。我看文獻的時候也遇到過這個問題。我用Perl寫了一個開源的自動刪除換行的工具:
ClipboardTextJoiner剪切板多行文本自動合併軟體,監控剪切板變化,自動刪除回車符和換行符,將多行文字合併成單行文本,方便將多行PDF文本複製粘貼到Word中。
詳情:http://blog.shenwei.me/clipboardtextjoiner/源碼:https://github.com/shenwei356/ClipboardTextJoiner把Perl腳本編譯成了二進位的exe文件,對於Windows用戶來說,使用方法非常簡單,只需要雙擊exe文件運行,然後像平常一樣複製粘貼即可
【不是廣告】使用epubBuilder打開需要編輯的文件,利用軟體自帶的「去除非段落換行」功能,即可輕鬆搞定!最近用python寫了個小程序,用來解決這個問題。
原理是用正則表達式匹配前後都不是換行符的換行符,將其剔除。
class text():
def __init__(self,file):
self.file=file
def rep(self):
f1=open(self.file,"r")
str=f1.read()
pattern=re.compile(r"([^
])
([^
])")
result=pattern.sub(r"12",str) #剔除換行符
f2=open("處理後的新文件名.txt","w")
f2.write(result)
f2.close()
f1.close()target=text("需要處理的文件名.txt")
target.rep()
移除txt文本中不必要的換行符這鏈接里有簡易軟體,專門為這種情況編寫的
推薦閱讀:
※最專業製作 PDF 的方式是什麼?
※怎樣使indesign導出pdf文件體積小+質量高?
※怎樣把PDF 里的文件其中一頁單獨拿出來另存為一個文件?
※閱讀PDF的神器有什麼?
※如何將pdf電子書製作成漂亮護眼紙質書?