File size: 1,376 Bytes
b928387
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import fitz  # PyMuPDF
from bs4 import BeautifulSoup
import io
import re
import requests
import fitz  # PyMuPDF
from PyPDF2 import PdfReader, PdfWriter


def pdf_to_markdown(pdf_path):

    headers = {
        'User-Agent': 'Mozilla/5.0 (X11; Windows; Windows x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36'}

    response = requests.get(url=pdf_path, headers=headers, timeout=120)
    on_fly_mem_obj = io.BytesIO(response.content)
    pdf_document = PdfReader(on_fly_mem_obj)
    # Initialize the Markdown content
    markdown_content = ""

    # Iterate through each page of the PDF
    for page_number in range(len(pdf_document.pages)):
        page = pdf_document.pages[page_number]

        # Extract text from the page
        text = page.extract_text("text")

        # Process the text (you can customize this part based on your needs)
        soup = BeautifulSoup(text, "html.parser")
        formatted_text = soup.get_text(separator="\n")

        # Append the processed text to the Markdown content
        markdown_content += f"\n# Page {page_number + 1}\n\n{formatted_text}\n"

    return markdown_content


# Example usage
pdf_path = ""
markdown_content = pdf_to_markdown(pdf_path)

# Save the Markdown content to a file
with open("output.md", "w", encoding="utf-8") as markdown_file:
    markdown_file.write(markdown_content)