• bitcoinBitcoin(BTC)$81,305.001.86%
  • Midas Fasanara Global EuroMidas Fasanara Global Euro(MGLOEURO)$111,813.00-0.36%
  • ethereumEthereum(ETH)$2,361.262.08%
  • tetherTether(USDT)$1.000.02%
  • binancecoinBNB(BNB)$758.812.71%
  • rippleXRP(XRP)$1.331.84%
  • usd-coinUSDC(USDC)$1.000.00%
  • solanaSolana(SOL)$102.722.73%
  • tronTRON(TRX)$0.3318191.26%
  • Figure HelocFigure Heloc(FIGR_HELOC)$1.030.00%
  • zcashZcash(ZEC)$1,303.904.23%
  • HyperliquidHyperliquid(HYPE)$81.464.77%
  • dogecoinDogecoin(DOGE)$0.0800973.75%
  • moneroMonero(XMR)$606.072.11%
  • USDSUSDS(USDS)$1.000.02%
  • whitebitWhiteBIT Coin(WBT)$78.081.82%
  • chainlinkChainlink(LINK)$11.763.59%
  • leo-tokenLEO Token(LEO)$9.434.35%
  • cardanoCardano(ADA)$0.2066461.50%
  • nearNEAR Protocol(NEAR)$4.663.94%
  • stellarStellar(XLM)$0.1714842.03%
  • bitcoin-cashBitcoin Cash(BCH)$297.906.28%
  • RainRain(RAIN)$0.007022-0.71%
  • Ethena USDeEthena USDe(USDE)$1.000.04%
  • daiDai(DAI)$1.00-0.01%
  • litecoinLitecoin(LTC)$57.612.38%
  • uniswapUniswap(UNI)$7.141.59%
  • CantonCanton(CC)$0.1014524.73%
  • avalanche-2Avalanche(AVAX)$8.992.63%
  • USD1USD1(USD1)$1.000.03%
  • suiSui(SUI)$0.942.97%
  • the-open-networkGram (prev. Toncoin)(GRAM)$1.241.80%
  • hedera-hashgraphHedera(HBAR)$0.0762060.47%
  • tether-goldTether Gold(XAUT)$4,039.330.76%
  • Global DollarGlobal Dollar(USDG)$1.00-0.01%
  • paypal-usdPayPal USD(PYUSD)$1.000.03%
  • BittensorBittensor(TAO)$255.812.93%
  • shiba-inuShiba Inu(SHIB)$0.0000053.11%
  • quant-networkQuant(QNT)$200.11-1.37%
  • crypto-com-chainCronos(CRO)$0.0539402.76%
  • EthenaEthena(ENA)$0.2034460.75%
  • BitwayBitway(BTW)$1.7319.27%
  • Ripple USDRipple USD(RLUSD)$1.000.00%
  • MemeCoreMemeCore(M)$1.107.87%
  • Circle USYCCircle USYC(USYC)$1.140.01%
  • Ondo US Dollar YieldOndo US Dollar Yield(USDY)$1.15-0.01%
  • okbOKB(OKB)$110.312.01%
  • BlackRock USD Institutional Digital Liquidity FundBlackRock USD Institutional Digital Liquidity Fund(BUIDL)$1.000.00%
  • pepePepe(PEPE)$0.00000515.53%
  • aaveAave(AAVE)$134.662.51%
TradePoint.io
  • Main
  • AI & Technology
  • Stock Charts
  • Market & News
  • Business
  • Finance Tips
  • Trade Tube
  • Blog
  • Shop
No Result
View All Result
TradePoint.io
No Result
View All Result

How to Build a Parsing Pipeline with Docling Parse for Layout-Aware Document Intelligence

June 16, 2026
in AI & Technology
Reading Time: 2 mins read
A A
How to Build a Parsing Pipeline with Docling Parse for Layout-Aware Document Intelligence
ShareShareShareShareShare
def create_demo_image(path):
   img = Image.new("RGB", (320, 180), "white")
   draw = ImageDraw.Draw(img)
   draw.rectangle([20, 20, 300, 160], outline="black", width=3)
   draw.ellipse([55, 45, 145, 135], outline="black", width=4)
   draw.line([180, 140, 285, 45], fill="black", width=4)
   draw.text((45, 145), "Embedded bitmap image", fill="black")
   img.save(path)
create_demo_image(DEMO_IMAGE_PATH)
def build_pdf(pdf_path):
   c = canvas.Canvas(str(pdf_path), pagesize=A4)
   width, height = A4
   c.setFont("Helvetica-Bold", 20)
   c.drawString(60, height - 70, "Docling Parse Advanced PDF Parsing Tutorial")
   c.setFont("Helvetica", 11)
   intro = (
       "This generated document is designed for testing text extraction, coordinate parsing, "
       "line grouping, vector path detection, bitmap resources, and layout-aware reconstruction."
   )
   text_obj = c.beginText(60, height - 105)
   text_obj.setLeading(15)
   for line in textwrap.wrap(intro, width=90):
       text_obj.textLine(line)
   c.drawText(text_obj)
   c.setFont("Helvetica-Bold", 14)
   c.drawString(60, height - 170, "1. Two-column text region")
   left_para = (
       "The left column contains compact explanatory text. A parser should expose words, "
       "characters, and line-level cells along with coordinates. These coordinates allow us "
       "to reconstruct reading order and inspect the spatial structure of a page."
   )
   right_para = (
       "The right column contains a separate paragraph. In document AI pipelines, layout "
       "features are useful for retrieval, table extraction, chunking, and downstream RAG "
       "applications where page position can matter."
   )
   y_start = height - 200
   left_text = c.beginText(60, y_start)
   left_text.setFont("Helvetica", 10)
   left_text.setLeading(13)
   for line in textwrap.wrap(left_para, width=42):
       left_text.textLine(line)
   c.drawText(left_text)
   right_text = c.beginText(325, y_start)
   right_text.setFont("Helvetica", 10)
   right_text.setLeading(13)
   for line in textwrap.wrap(right_para, width=42):
       right_text.textLine(line)
   c.drawText(right_text)
   c.setStrokeColor(colors.darkblue)
   c.setLineWidth(2)
   c.rect(55, height - 315, 225, 130, stroke=1, fill=0)
   c.rect(320, height - 315, 225, 130, stroke=1, fill=0)
   c.setStrokeColor(colors.darkgreen)
   c.setLineWidth(3)
   c.circle(140, height - 390, 40, stroke=1, fill=0)
   c.line(220, height - 430, 310, height - 355)
   c.setFont("Helvetica-Bold", 14)
   c.setFillColor(colors.black)
   c.drawString(60, height - 470, "2. Simple table-like structure")
   data = [
       ["Section", "Signal", "Expected parser behavior"],
       ["Text", "Words and lines", "Return text cells with coordinates"],
       ["Vector", "Boxes and lines", "Expose page path/vector resources"],
       ["Bitmap", "Embedded image", "Expose or render image resources"],
   ]
   table = Table(data, colWidths=[100, 130, 260])
   table.setStyle(TableStyle([
       ("BACKGROUND", (0, 0), (-1, 0), colors.lightgrey),
       ("GRID", (0, 0), (-1, -1), 0.7, colors.black),
       ("FONTNAME", (0, 0), (-1, 0), "Helvetica-Bold"),
       ("FONTSIZE", (0, 0), (-1, -1), 9),
       ("VALIGN", (0, 0), (-1, -1), "MIDDLE"),
   ]))
   table.wrapOn(c, width, height)
   table.drawOn(c, 60, height - 590)
   c.setFont("Helvetica", 9)
   c.drawString(60, 55, "Page 1: generated programmatic PDF with text, table-like layout, and vector paths.")
   c.showPage()
   c.setFont("Helvetica-Bold", 18)
   c.drawString(60, height - 70, "Page 2: Bitmap, Dense Text, and Reading Order")
   c.setFont("Helvetica", 10)
   dense = (
       "This page includes an embedded bitmap image and several short blocks of text. "
       "We use it to test whether rendering works, whether the parser preserves page-level "
       "coordinates, and whether our own reconstruction logic can group words into lines."
   )
   y = height - 105
   for para_idx in range(4):
       tx = c.beginText(60, y)
       tx.setFont("Helvetica", 10)
       tx.setLeading(13)
       for line in textwrap.wrap(f"Block {para_idx + 1}: {dense}", width=92):
           tx.textLine(line)
       c.drawText(tx)
       y -= 70
   c.drawImage(str(DEMO_IMAGE_PATH), 110, height - 510, width=320, height=180, preserveAspectRatio=True)
   c.setStrokeColor(colors.red)
   c.setLineWidth(2)
   c.roundRect(95, height - 525, 350, 210, 10, stroke=1, fill=0)
   c.setFillColor(colors.black)
   c.setFont("Helvetica-Bold", 12)
   c.drawString(60, height - 570, "Coordinate-aware extraction lets us keep page, text, and position together.")
   c.setFont("Helvetica", 9)
   c.drawString(60, 55, "Page 2: embedded bitmap image and multiple text blocks.")
   c.save()
build_pdf(PDF_PATH)
print("Created PDF:", PDF_PATH)

Credit: Source link

YOU MAY ALSO LIKE

Meta’s Waddle World Is A Tamagotchi-Like AI Pet App

OLX Group Unveils Agentic Selling and DealFinder at CLAIM Summit – Unite.AI

ShareTweetSendSharePin

Related Posts

Meta’s Waddle World Is A Tamagotchi-Like AI Pet App
AI & Technology

Meta’s Waddle World Is A Tamagotchi-Like AI Pet App

October 28, 2026
OLX Group Unveils Agentic Selling and DealFinder at CLAIM Summit – Unite.AI
AI & Technology

OLX Group Unveils Agentic Selling and DealFinder at CLAIM Summit – Unite.AI

October 28, 2026
BUZZ HPC Lands 9M Fixed-Rate Credit Facility for Cohere GPU Cluster – Unite.AI
AI & Technology

BUZZ HPC Lands $129M Fixed-Rate Credit Facility for Cohere GPU Cluster – Unite.AI

October 28, 2026
iOS 27.2 Brings Two New Features To Apple’s CarPlay
AI & Technology

iOS 27.2 Brings Two New Features To Apple’s CarPlay

October 28, 2026
Next Post
Zimmer Biomet: Does Slow And Steady Still Win The Race?

Zimmer Biomet: Does Slow And Steady Still Win The Race?

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Search

No Result
View All Result
4th-grade student recounts Oregon school shooting

4th-grade student recounts Oregon school shooting

October 23, 2026
‘Republican wave’ unlikely but House GOP can ‘hold their own,’ says outgoing congressman

‘Republican wave’ unlikely but House GOP can ‘hold their own,’ says outgoing congressman

October 25, 2026
Stranger Than Heaven Builds Its Identity As Like A Dragon’s More Relentless Spin-Off

Stranger Than Heaven Builds Its Identity As Like A Dragon’s More Relentless Spin-Off

October 21, 2026

About

Learn more

Our Services

Legal

Privacy Policy

Terms of Use

Bloggers

Learn more

Article Links

Contact

Advertise

Ask us anything

©2020- TradePoint.io - All rights reserved!

Tradepoint.io, being just a publishing and technology platform, is not a registered broker-dealer or investment adviser. So we do not provide investment advice. Rather, brokerage services are provided to clients of Tradepoint.io by independent SEC-registered broker-dealers and members of FINRA/SIPC. Every form of investing carries some risk and past performance is not a guarantee of future results. “Tradepoint.io“, “Instant Investing” and “My Trading Tools” are registered trademarks of Apperbuild, LLC.

This website is operated by Apperbuild, LLC. We have no link to any brokerage firm and we do not provide investment advice. Every information and resource we provide is solely for the education of our readers. © 2020 Apperbuild, LLC. All rights reserved.

No Result
View All Result
  • Main
  • AI & Technology
  • Stock Charts
  • Market & News
  • Business
  • Finance Tips
  • Trade Tube
  • Blog
  • Shop

© 2023 - TradePoint.io - All Rights Reserved!