PageSourceSearch

https://localpdf.online/app?upload=1

html localpdf.online collected 2026-10-02 01:06:07 UTC 4,029 bytes, 57 lines download raw bytes

1<!doctype html>
2<html lang="en" translate="no">
3  <head>
4    <meta charset="UTF-8" />
5    <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
6    
6<script type="module" src="https://localpdf.online/.webmcp/bridge.js"></script>
6<link rel="icon" href="/app/favicon.svg" type="image/svg+xml" />
7    <link rel="apple-touch-icon" href="/app/logos/localpdf-apple-180x180.png" />
8    <link rel="manifest" href="/app/app-manifest.json" />
9    <meta name="apple-mobile-web-app-capable" content="yes" />
10    <meta name="mobile-web-app-capable" content="yes" />
11    <meta name="apple-mobile-web-app-title" content="LocalPDF" />
12    <meta name="format-detection" content="telephone=no" />
13    <meta name="description" content="LocalPDF Studio is a local-first PDF workspace for editing, merging, OCR, conversion, and document review." />
14    <meta name="robots" content="noindex, nofollow" />
15    <link rel="canonical" href="https://localpdf.online/app/" />
16    <meta name="theme-color" content="#0f172a" />
17    <title>LocalPDF Studio</title>
18
19    <!-- Google Analytics 4 (Legacy Fallback) -->
vendor: 68 bytes, lines 19-20
19
20    <script async src="https://www.googletagmanager.com/gtag/js?id=
20G-MS36WTHPCZ
vendor: 16 bytes, lines 20-21
20"></script>
21    
21<script>
22      
vendor: 145 bytes, lines 22-25
22window.dataLayer = window.dataLayer || [];
23      function gtag(){dataLayer.push(arguments);}
24      gtag('js', new Date());
25      gtag('config', '
25G-MS36WTHPCZ
vendor: 32 bytes, lines 25-26
25', { anonymize_ip: true });
26    
26</script>
26
27
28    <!-- PostHog -->
29    
29<script>
30      !function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.async=!0,p.src=s.api_host+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="capture identify alias people.set people.set_once set_config register register_once unregister opt_out_capturing has_opted_out_capturing opt_in_capturing reset isFeatureEnabled onFeatureFlags getFeatureFlag getFeatureFlagPayload reloadFeatureFlags group updateEarlyAccessFeatureEnrollment getGroups get_group_property set_group_property get_distinct_id getGroups get_session_id".split(" "),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]);
31      posthog.init('phc_6iTpA8vFIxlQ8HxmPsoMmtj4sqgCUWiZQMOpfSfyvxe', {
32        api_host: window.location.origin + '/ingest',
33        ui_host: 'https://eu.posthog.com',
34        autocapture: false,
35        capture_pageview: false,
36        session_recording: {
37          maskAllInputs: true,
38          maskTextSelector: '.ph-no-capture',
39          blockSelector: '.ph-no-capture, canvas'
40        }
41      });
42    </script>
42
43
44
45
46    <!-- Preload tesseract WASM core for instant OCR startup -->
47    <link rel="prefetch" href="/app/vendor/tesseract/core/tesseract-core-lstm.wasm" as="fetch" crossorigin="anonymous" />
48    <link rel="prefetch" href="/app/vendor/tesseract/core/tesseract-core-simd-lstm.wasm" as="fetch" crossorigin="anonymous" />
49    
49<script type="module" crossorigin src="/app/assets/index-DbFRh42P.js"></script>
49
50    <link rel="modulepreload" crossorigin href="/app/assets/vendor-react-C_xdI0Ng.js">
51    <link rel="stylesheet" crossorigin href="/app/assets/index-3PvMbFPA.css">
52  </head>
53  <body class="notranslate">
54    <div id="root" translate="no"></div>
55  
55<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"3f0c9fce04ac487b9a7b8f012b7e629d","r":1,"spa":2}' crossorigin="anonymous"></script>
55
56</body>
57</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.