標籤:

將 PDF 轉換為 word 或 txt 文件後,會產生很多的換行符,如何自動消除這些非段落換行符、同時保留段落的劃分呢?

由於內容很多,不可能一行行的弄。具體如所附圖片所示。


可以試試這個

非段落換行的excel一鍵宏

或者:

第一步:將連續兩個換行符全部替換為@@@@;

第二步:將換行符全部替換為空白(什麼也不填)。

第三步:將@@@@替換為換行。

ps:用正則表達式應該也可以去除非段落換行吧,坐等正則高手。

-------------------------------------------------2013-02-17--------------------------------------------------------

感謝下余晟大神。。。

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電子書製作成漂亮護眼紙質書?

TAG:PDF | PDF轉換 |