<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="330896" data-post-id="330896">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="cgraham" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		                  <h3>cgraham</h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body">
								<p>Thanks, everyone! These suggestions have been great!  I am probably going to start with a 3rd party (Either Surya cloud or Microsoft)  and then maybe graduate to surya or Tika if costs become too crazy.</p>
<p>Thanks again! (And keep the suggestions coming as this is a great list!)</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="330896" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/best-libraries-methods-for-parsing-text-and-content-pdf-files/63892/12">Post #11</a>
	                </div>
	            </div>
              <div id="likers-container-330896" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="330896"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #11"></div>
  </section>
</div>
    <div class="postbit" id="390012" data-post-id="390012">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="thevibecoder27" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/thevibecoder27/120/40545_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		                  <h3>thevibecoder27</h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body">
								<p>adding one more option here, with obvious bias: we built DocuShell.</p>
<p>The gap we’re trying to solve is between raw libraries like <code>pdfminer.six</code> / Tabula and bigger cloud Document AI services. The libraries are great when the PDF shape is predictable, but once you need queues, retries, validation, artifact downloads, rate limits, cleanup, and consistent JSON/Markdown output, you end up building a lot around the parser.</p>
<p>DocuShell is meant to be that managed layer: upload a PDF through an API, get normalized JSON / Markdown / text / table-friendly artifacts back, with strict validation and short-lived/ephemeral file handling. The idea is not “we wrote the magical perfect PDF parser”, no such thing exists, but rather: use vetted extraction engines behind one API contract, with security and retention controls built in.</p>
<p>I’d still use:</p>
<ul>
<li><code>pdfminer.six</code> / <code>pdf2txt.py</code> for simple text extraction</li>
<li>Tabula for predictable tables</li>
<li>Azure Document Intelligence if you’re already deep in Microsoft and need model training/classification</li>
<li>DocuShell when you want third-party-service ergonomics, but with more explicit API, artifact, queueing, and retention controls</li>
</ul>
<p>Would be very interested in feedback from folks here, especially on the Elixir integration side, since the API-first shape should make it easy to wrap with <code>Req</code>.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="390012" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/best-libraries-methods-for-parsing-text-and-content-pdf-files/63892/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-390012" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="390012"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #12"></div>
  </section>
</div>
    <div class="postbit" id="391289" data-post-id="391289">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="emarto4" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		                  <h3>emarto4</h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body">
								<p>I’ve found combining Elixir with Tabula (via Java interop) pretty handy for extracting tables from PDFs. Also, the PDF spec is a fascinating read if you’re feeling adventurous!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="391289" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/best-libraries-methods-for-parsing-text-and-content-pdf-files/63892/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-391289" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="391289"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-last-post cat-last-post" title="Last post!"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <span class="all-loaded">— All posts loaded —</span>
</div></template></turbo-stream>