├── .github └── workflows │ └── codeql-analysis.yml ├── About.md ├── LICENSE ├── README.md ├── README_deutsch.md ├── code ├── OCRthyPDF.py ├── PySimpleGUI_4_60.py └── splitter.py ├── gui ├── ocrthypdf.desktop ├── ocrthypdf.png └── ocrthypdf.svg ├── licenses ├── Ghostscript_copyright ├── Leptonica_copyright ├── OCRmyPDF_copyright ├── PySimpleGUI_copyright ├── darkdetect_copyright ├── fonts-arkpandora_copyright ├── fonts-croscore_copyright ├── fonts-liberation2_copyright ├── icc-profiles-free_copyright ├── libxml2_copyright ├── pdftotext_copyright ├── pngquant_copyright ├── python3_copyright ├── pyzbar_copyright ├── qpdf_copyright ├── tesseract_copyright ├── tesseract_languages ├── zbar-library_copyright └── zlib1g_copyright ├── screenshots ├── 1.png ├── 2.png ├── 3.png ├── 4.png └── Readme.md ├── snapcraft.yaml └── testing ├── AI_generated_text.pdf ├── Example.pdf ├── Example_Sticker_Mode.pdf ├── Readme.md ├── Separator.pdf ├── Separator_Page_Areas.odt ├── Separator_Page_Template.odt └── barcodesQR.zip /.github/workflows/codeql-analysis.yml: -------------------------------------------------------------------------------- 1 | # For most projects, this workflow file will not need changing; you simply need 2 | # to commit it to your repository. 3 | # 4 | # You may wish to alter this file to override the set of languages analyzed, 5 | # or to provide custom queries or build logic. 6 | # 7 | # ******** NOTE ******** 8 | # We have attempted to detect the languages in your repository. Please check 9 | # the `language` matrix defined below to confirm you have the correct set of 10 | # supported CodeQL languages. 11 | # 12 | name: "CodeQL" 13 | 14 | on: 15 | push: 16 | branches: [ main ] 17 | pull_request: 18 | # The branches below must be a subset of the branches above 19 | branches: [ main ] 20 | schedule: 21 | - cron: '16 18 * * 2' 22 | 23 | jobs: 24 | analyze: 25 | name: Analyze 26 | runs-on: ubuntu-latest 27 | permissions: 28 | actions: read 29 | contents: read 30 | security-events: write 31 | 32 | strategy: 33 | fail-fast: false 34 | matrix: 35 | language: [ 'python' ] 36 | # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] 37 | # Learn more: 38 | # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed 39 | 40 | steps: 41 | - name: Checkout repository 42 | uses: actions/checkout@v2 43 | 44 | # Initializes the CodeQL tools for scanning. 45 | - name: Initialize CodeQL 46 | uses: github/codeql-action/init@v1 47 | with: 48 | languages: ${{ matrix.language }} 49 | # If you wish to specify custom queries, you can do so here or in a config file. 50 | # By default, queries listed here will override any specified in a config file. 51 | # Prefix the list here with "+" to use these queries and those in the config file. 52 | # queries: ./path/to/local/query, your-org/your-repo/queries@main 53 | 54 | # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). 55 | # If this step fails, then you should remove it and run the build manually (see below) 56 | - name: Autobuild 57 | uses: github/codeql-action/autobuild@v1 58 | 59 | # ℹ️ Command-line programs to run using the OS shell. 60 | # 📚 https://git.io/JvXDl 61 | 62 | # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines 63 | # and modify them (or add more) to build your code if your project 64 | # uses a compiled language 65 | 66 | #- run: | 67 | # make bootstrap 68 | # make release 69 | 70 | - name: Perform CodeQL Analysis 71 | uses: github/codeql-action/analyze@v1 72 | -------------------------------------------------------------------------------- /About.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU AFFERO GENERAL PUBLIC LICENSE 2 | Version 3, 19 November 2007 3 | 4 | Copyright (C) 2007 Free Software Foundation, Inc. 5 | Everyone is permitted to copy and distribute verbatim copies 6 | of this license document, but changing it is not allowed. 7 | 8 | Preamble 9 | 10 | The GNU Affero General Public License is a free, copyleft license for 11 | software and other kinds of works, specifically designed to ensure 12 | cooperation with the community in the case of network server software. 13 | 14 | The licenses for most software and other practical works are designed 15 | to take away your freedom to share and change the works. By contrast, 16 | our General Public Licenses are intended to guarantee your freedom to 17 | share and change all versions of a program--to make sure it remains free 18 | software for all its users. 19 | 20 | When we speak of free software, we are referring to freedom, not 21 | price. Our General Public Licenses are designed to make sure that you 22 | have the freedom to distribute copies of free software (and charge for 23 | them if you wish), that you receive source code or can get it if you 24 | want it, that you can change the software or use pieces of it in new 25 | free programs, and that you know you can do these things. 26 | 27 | Developers that use our General Public Licenses protect your rights 28 | with two steps: (1) assert copyright on the software, and (2) offer 29 | you this License which gives you legal permission to copy, distribute 30 | and/or modify the software. 31 | 32 | A secondary benefit of defending all users' freedom is that 33 | improvements made in alternate versions of the program, if they 34 | receive widespread use, become available for other developers to 35 | incorporate. Many developers of free software are heartened and 36 | encouraged by the resulting cooperation. However, in the case of 37 | software used on network servers, this result may fail to come about. 38 | The GNU General Public License permits making a modified version and 39 | letting the public access it on a server without ever releasing its 40 | source code to the public. 41 | 42 | The GNU Affero General Public License is designed specifically to 43 | ensure that, in such cases, the modified source code becomes available 44 | to the community. It requires the operator of a network server to 45 | provide the source code of the modified version running there to the 46 | users of that server. Therefore, public use of a modified version, on 47 | a publicly accessible server, gives the public access to the source 48 | code of the modified version. 49 | 50 | An older license, called the Affero General Public License and 51 | published by Affero, was designed to accomplish similar goals. This is 52 | a different license, not a version of the Affero GPL, but Affero has 53 | released a new version of the Affero GPL which permits relicensing under 54 | this license. 55 | 56 | The precise terms and conditions for copying, distribution and 57 | modification follow. 58 | 59 | TERMS AND CONDITIONS 60 | 61 | 0. Definitions. 62 | 63 | "This License" refers to version 3 of the GNU Affero General Public License. 64 | 65 | "Copyright" also means copyright-like laws that apply to other kinds of 66 | works, such as semiconductor masks. 67 | 68 | "The Program" refers to any copyrightable work licensed under this 69 | License. Each licensee is addressed as "you". "Licensees" and 70 | "recipients" may be individuals or organizations. 71 | 72 | To "modify" a work means to copy from or adapt all or part of the work 73 | in a fashion requiring copyright permission, other than the making of an 74 | exact copy. The resulting work is called a "modified version" of the 75 | earlier work or a work "based on" the earlier work. 76 | 77 | A "covered work" means either the unmodified Program or a work based 78 | on the Program. 79 | 80 | To "propagate" a work means to do anything with it that, without 81 | permission, would make you directly or secondarily liable for 82 | infringement under applicable copyright law, except executing it on a 83 | computer or modifying a private copy. Propagation includes copying, 84 | distribution (with or without modification), making available to the 85 | public, and in some countries other activities as well. 86 | 87 | To "convey" a work means any kind of propagation that enables other 88 | parties to make or receive copies. Mere interaction with a user through 89 | a computer network, with no transfer of a copy, is not conveying. 90 | 91 | An interactive user interface displays "Appropriate Legal Notices" 92 | to the extent that it includes a convenient and prominently visible 93 | feature that (1) displays an appropriate copyright notice, and (2) 94 | tells the user that there is no warranty for the work (except to the 95 | extent that warranties are provided), that licensees may convey the 96 | work under this License, and how to view a copy of this License. If 97 | the interface presents a list of user commands or options, such as a 98 | menu, a prominent item in the list meets this criterion. 99 | 100 | 1. Source Code. 101 | 102 | The "source code" for a work means the preferred form of the work 103 | for making modifications to it. "Object code" means any non-source 104 | form of a work. 105 | 106 | A "Standard Interface" means an interface that either is an official 107 | standard defined by a recognized standards body, or, in the case of 108 | interfaces specified for a particular programming language, one that 109 | is widely used among developers working in that language. 110 | 111 | The "System Libraries" of an executable work include anything, other 112 | than the work as a whole, that (a) is included in the normal form of 113 | packaging a Major Component, but which is not part of that Major 114 | Component, and (b) serves only to enable use of the work with that 115 | Major Component, or to implement a Standard Interface for which an 116 | implementation is available to the public in source code form. A 117 | "Major Component", in this context, means a major essential component 118 | (kernel, window system, and so on) of the specific operating system 119 | (if any) on which the executable work runs, or a compiler used to 120 | produce the work, or an object code interpreter used to run it. 121 | 122 | The "Corresponding Source" for a work in object code form means all 123 | the source code needed to generate, install, and (for an executable 124 | work) run the object code and to modify the work, including scripts to 125 | control those activities. However, it does not include the work's 126 | System Libraries, or general-purpose tools or generally available free 127 | programs which are used unmodified in performing those activities but 128 | which are not part of the work. For example, Corresponding Source 129 | includes interface definition files associated with source files for 130 | the work, and the source code for shared libraries and dynamically 131 | linked subprograms that the work is specifically designed to require, 132 | such as by intimate data communication or control flow between those 133 | subprograms and other parts of the work. 134 | 135 | The Corresponding Source need not include anything that users 136 | can regenerate automatically from other parts of the Corresponding 137 | Source. 138 | 139 | The Corresponding Source for a work in source code form is that 140 | same work. 141 | 142 | 2. Basic Permissions. 143 | 144 | All rights granted under this License are granted for the term of 145 | copyright on the Program, and are irrevocable provided the stated 146 | conditions are met. This License explicitly affirms your unlimited 147 | permission to run the unmodified Program. The output from running a 148 | covered work is covered by this License only if the output, given its 149 | content, constitutes a covered work. This License acknowledges your 150 | rights of fair use or other equivalent, as provided by copyright law. 151 | 152 | You may make, run and propagate covered works that you do not 153 | convey, without conditions so long as your license otherwise remains 154 | in force. You may convey covered works to others for the sole purpose 155 | of having them make modifications exclusively for you, or provide you 156 | with facilities for running those works, provided that you comply with 157 | the terms of this License in conveying all material for which you do 158 | not control copyright. Those thus making or running the covered works 159 | for you must do so exclusively on your behalf, under your direction 160 | and control, on terms that prohibit them from making any copies of 161 | your copyrighted material outside their relationship with you. 162 | 163 | Conveying under any other circumstances is permitted solely under 164 | the conditions stated below. Sublicensing is not allowed; section 10 165 | makes it unnecessary. 166 | 167 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law. 168 | 169 | No covered work shall be deemed part of an effective technological 170 | measure under any applicable law fulfilling obligations under article 171 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or 172 | similar laws prohibiting or restricting circumvention of such 173 | measures. 174 | 175 | When you convey a covered work, you waive any legal power to forbid 176 | circumvention of technological measures to the extent such circumvention 177 | is effected by exercising rights under this License with respect to 178 | the covered work, and you disclaim any intention to limit operation or 179 | modification of the work as a means of enforcing, against the work's 180 | users, your or third parties' legal rights to forbid circumvention of 181 | technological measures. 182 | 183 | 4. Conveying Verbatim Copies. 184 | 185 | You may convey verbatim copies of the Program's source code as you 186 | receive it, in any medium, provided that you conspicuously and 187 | appropriately publish on each copy an appropriate copyright notice; 188 | keep intact all notices stating that this License and any 189 | non-permissive terms added in accord with section 7 apply to the code; 190 | keep intact all notices of the absence of any warranty; and give all 191 | recipients a copy of this License along with the Program. 192 | 193 | You may charge any price or no price for each copy that you convey, 194 | and you may offer support or warranty protection for a fee. 195 | 196 | 5. Conveying Modified Source Versions. 197 | 198 | You may convey a work based on the Program, or the modifications to 199 | produce it from the Program, in the form of source code under the 200 | terms of section 4, provided that you also meet all of these conditions: 201 | 202 | a) The work must carry prominent notices stating that you modified 203 | it, and giving a relevant date. 204 | 205 | b) The work must carry prominent notices stating that it is 206 | released under this License and any conditions added under section 207 | 7. This requirement modifies the requirement in section 4 to 208 | "keep intact all notices". 209 | 210 | c) You must license the entire work, as a whole, under this 211 | License to anyone who comes into possession of a copy. This 212 | License will therefore apply, along with any applicable section 7 213 | additional terms, to the whole of the work, and all its parts, 214 | regardless of how they are packaged. This License gives no 215 | permission to license the work in any other way, but it does not 216 | invalidate such permission if you have separately received it. 217 | 218 | d) If the work has interactive user interfaces, each must display 219 | Appropriate Legal Notices; however, if the Program has interactive 220 | interfaces that do not display Appropriate Legal Notices, your 221 | work need not make them do so. 222 | 223 | A compilation of a covered work with other separate and independent 224 | works, which are not by their nature extensions of the covered work, 225 | and which are not combined with it such as to form a larger program, 226 | in or on a volume of a storage or distribution medium, is called an 227 | "aggregate" if the compilation and its resulting copyright are not 228 | used to limit the access or legal rights of the compilation's users 229 | beyond what the individual works permit. Inclusion of a covered work 230 | in an aggregate does not cause this License to apply to the other 231 | parts of the aggregate. 232 | 233 | 6. Conveying Non-Source Forms. 234 | 235 | You may convey a covered work in object code form under the terms 236 | of sections 4 and 5, provided that you also convey the 237 | machine-readable Corresponding Source under the terms of this License, 238 | in one of these ways: 239 | 240 | a) Convey the object code in, or embodied in, a physical product 241 | (including a physical distribution medium), accompanied by the 242 | Corresponding Source fixed on a durable physical medium 243 | customarily used for software interchange. 244 | 245 | b) Convey the object code in, or embodied in, a physical product 246 | (including a physical distribution medium), accompanied by a 247 | written offer, valid for at least three years and valid for as 248 | long as you offer spare parts or customer support for that product 249 | model, to give anyone who possesses the object code either (1) a 250 | copy of the Corresponding Source for all the software in the 251 | product that is covered by this License, on a durable physical 252 | medium customarily used for software interchange, for a price no 253 | more than your reasonable cost of physically performing this 254 | conveying of source, or (2) access to copy the 255 | Corresponding Source from a network server at no charge. 256 | 257 | c) Convey individual copies of the object code with a copy of the 258 | written offer to provide the Corresponding Source. This 259 | alternative is allowed only occasionally and noncommercially, and 260 | only if you received the object code with such an offer, in accord 261 | with subsection 6b. 262 | 263 | d) Convey the object code by offering access from a designated 264 | place (gratis or for a charge), and offer equivalent access to the 265 | Corresponding Source in the same way through the same place at no 266 | further charge. You need not require recipients to copy the 267 | Corresponding Source along with the object code. If the place to 268 | copy the object code is a network server, the Corresponding Source 269 | may be on a different server (operated by you or a third party) 270 | that supports equivalent copying facilities, provided you maintain 271 | clear directions next to the object code saying where to find the 272 | Corresponding Source. Regardless of what server hosts the 273 | Corresponding Source, you remain obligated to ensure that it is 274 | available for as long as needed to satisfy these requirements. 275 | 276 | e) Convey the object code using peer-to-peer transmission, provided 277 | you inform other peers where the object code and Corresponding 278 | Source of the work are being offered to the general public at no 279 | charge under subsection 6d. 280 | 281 | A separable portion of the object code, whose source code is excluded 282 | from the Corresponding Source as a System Library, need not be 283 | included in conveying the object code work. 284 | 285 | A "User Product" is either (1) a "consumer product", which means any 286 | tangible personal property which is normally used for personal, family, 287 | or household purposes, or (2) anything designed or sold for incorporation 288 | into a dwelling. In determining whether a product is a consumer product, 289 | doubtful cases shall be resolved in favor of coverage. For a particular 290 | product received by a particular user, "normally used" refers to a 291 | typical or common use of that class of product, regardless of the status 292 | of the particular user or of the way in which the particular user 293 | actually uses, or expects or is expected to use, the product. A product 294 | is a consumer product regardless of whether the product has substantial 295 | commercial, industrial or non-consumer uses, unless such uses represent 296 | the only significant mode of use of the product. 297 | 298 | "Installation Information" for a User Product means any methods, 299 | procedures, authorization keys, or other information required to install 300 | and execute modified versions of a covered work in that User Product from 301 | a modified version of its Corresponding Source. The information must 302 | suffice to ensure that the continued functioning of the modified object 303 | code is in no case prevented or interfered with solely because 304 | modification has been made. 305 | 306 | If you convey an object code work under this section in, or with, or 307 | specifically for use in, a User Product, and the conveying occurs as 308 | part of a transaction in which the right of possession and use of the 309 | User Product is transferred to the recipient in perpetuity or for a 310 | fixed term (regardless of how the transaction is characterized), the 311 | Corresponding Source conveyed under this section must be accompanied 312 | by the Installation Information. But this requirement does not apply 313 | if neither you nor any third party retains the ability to install 314 | modified object code on the User Product (for example, the work has 315 | been installed in ROM). 316 | 317 | The requirement to provide Installation Information does not include a 318 | requirement to continue to provide support service, warranty, or updates 319 | for a work that has been modified or installed by the recipient, or for 320 | the User Product in which it has been modified or installed. Access to a 321 | network may be denied when the modification itself materially and 322 | adversely affects the operation of the network or violates the rules and 323 | protocols for communication across the network. 324 | 325 | Corresponding Source conveyed, and Installation Information provided, 326 | in accord with this section must be in a format that is publicly 327 | documented (and with an implementation available to the public in 328 | source code form), and must require no special password or key for 329 | unpacking, reading or copying. 330 | 331 | 7. Additional Terms. 332 | 333 | "Additional permissions" are terms that supplement the terms of this 334 | License by making exceptions from one or more of its conditions. 335 | Additional permissions that are applicable to the entire Program shall 336 | be treated as though they were included in this License, to the extent 337 | that they are valid under applicable law. If additional permissions 338 | apply only to part of the Program, that part may be used separately 339 | under those permissions, but the entire Program remains governed by 340 | this License without regard to the additional permissions. 341 | 342 | When you convey a copy of a covered work, you may at your option 343 | remove any additional permissions from that copy, or from any part of 344 | it. (Additional permissions may be written to require their own 345 | removal in certain cases when you modify the work.) You may place 346 | additional permissions on material, added by you to a covered work, 347 | for which you have or can give appropriate copyright permission. 348 | 349 | Notwithstanding any other provision of this License, for material you 350 | add to a covered work, you may (if authorized by the copyright holders of 351 | that material) supplement the terms of this License with terms: 352 | 353 | a) Disclaiming warranty or limiting liability differently from the 354 | terms of sections 15 and 16 of this License; or 355 | 356 | b) Requiring preservation of specified reasonable legal notices or 357 | author attributions in that material or in the Appropriate Legal 358 | Notices displayed by works containing it; or 359 | 360 | c) Prohibiting misrepresentation of the origin of that material, or 361 | requiring that modified versions of such material be marked in 362 | reasonable ways as different from the original version; or 363 | 364 | d) Limiting the use for publicity purposes of names of licensors or 365 | authors of the material; or 366 | 367 | e) Declining to grant rights under trademark law for use of some 368 | trade names, trademarks, or service marks; or 369 | 370 | f) Requiring indemnification of licensors and authors of that 371 | material by anyone who conveys the material (or modified versions of 372 | it) with contractual assumptions of liability to the recipient, for 373 | any liability that these contractual assumptions directly impose on 374 | those licensors and authors. 375 | 376 | All other non-permissive additional terms are considered "further 377 | restrictions" within the meaning of section 10. If the Program as you 378 | received it, or any part of it, contains a notice stating that it is 379 | governed by this License along with a term that is a further 380 | restriction, you may remove that term. If a license document contains 381 | a further restriction but permits relicensing or conveying under this 382 | License, you may add to a covered work material governed by the terms 383 | of that license document, provided that the further restriction does 384 | not survive such relicensing or conveying. 385 | 386 | If you add terms to a covered work in accord with this section, you 387 | must place, in the relevant source files, a statement of the 388 | additional terms that apply to those files, or a notice indicating 389 | where to find the applicable terms. 390 | 391 | Additional terms, permissive or non-permissive, may be stated in the 392 | form of a separately written license, or stated as exceptions; 393 | the above requirements apply either way. 394 | 395 | 8. Termination. 396 | 397 | You may not propagate or modify a covered work except as expressly 398 | provided under this License. Any attempt otherwise to propagate or 399 | modify it is void, and will automatically terminate your rights under 400 | this License (including any patent licenses granted under the third 401 | paragraph of section 11). 402 | 403 | However, if you cease all violation of this License, then your 404 | license from a particular copyright holder is reinstated (a) 405 | provisionally, unless and until the copyright holder explicitly and 406 | finally terminates your license, and (b) permanently, if the copyright 407 | holder fails to notify you of the violation by some reasonable means 408 | prior to 60 days after the cessation. 409 | 410 | Moreover, your license from a particular copyright holder is 411 | reinstated permanently if the copyright holder notifies you of the 412 | violation by some reasonable means, this is the first time you have 413 | received notice of violation of this License (for any work) from that 414 | copyright holder, and you cure the violation prior to 30 days after 415 | your receipt of the notice. 416 | 417 | Termination of your rights under this section does not terminate the 418 | licenses of parties who have received copies or rights from you under 419 | this License. If your rights have been terminated and not permanently 420 | reinstated, you do not qualify to receive new licenses for the same 421 | material under section 10. 422 | 423 | 9. Acceptance Not Required for Having Copies. 424 | 425 | You are not required to accept this License in order to receive or 426 | run a copy of the Program. Ancillary propagation of a covered work 427 | occurring solely as a consequence of using peer-to-peer transmission 428 | to receive a copy likewise does not require acceptance. However, 429 | nothing other than this License grants you permission to propagate or 430 | modify any covered work. These actions infringe copyright if you do 431 | not accept this License. Therefore, by modifying or propagating a 432 | covered work, you indicate your acceptance of this License to do so. 433 | 434 | 10. Automatic Licensing of Downstream Recipients. 435 | 436 | Each time you convey a covered work, the recipient automatically 437 | receives a license from the original licensors, to run, modify and 438 | propagate that work, subject to this License. You are not responsible 439 | for enforcing compliance by third parties with this License. 440 | 441 | An "entity transaction" is a transaction transferring control of an 442 | organization, or substantially all assets of one, or subdividing an 443 | organization, or merging organizations. If propagation of a covered 444 | work results from an entity transaction, each party to that 445 | transaction who receives a copy of the work also receives whatever 446 | licenses to the work the party's predecessor in interest had or could 447 | give under the previous paragraph, plus a right to possession of the 448 | Corresponding Source of the work from the predecessor in interest, if 449 | the predecessor has it or can get it with reasonable efforts. 450 | 451 | You may not impose any further restrictions on the exercise of the 452 | rights granted or affirmed under this License. For example, you may 453 | not impose a license fee, royalty, or other charge for exercise of 454 | rights granted under this License, and you may not initiate litigation 455 | (including a cross-claim or counterclaim in a lawsuit) alleging that 456 | any patent claim is infringed by making, using, selling, offering for 457 | sale, or importing the Program or any portion of it. 458 | 459 | 11. Patents. 460 | 461 | A "contributor" is a copyright holder who authorizes use under this 462 | License of the Program or a work on which the Program is based. The 463 | work thus licensed is called the contributor's "contributor version". 464 | 465 | A contributor's "essential patent claims" are all patent claims 466 | owned or controlled by the contributor, whether already acquired or 467 | hereafter acquired, that would be infringed by some manner, permitted 468 | by this License, of making, using, or selling its contributor version, 469 | but do not include claims that would be infringed only as a 470 | consequence of further modification of the contributor version. For 471 | purposes of this definition, "control" includes the right to grant 472 | patent sublicenses in a manner consistent with the requirements of 473 | this License. 474 | 475 | Each contributor grants you a non-exclusive, worldwide, royalty-free 476 | patent license under the contributor's essential patent claims, to 477 | make, use, sell, offer for sale, import and otherwise run, modify and 478 | propagate the contents of its contributor version. 479 | 480 | In the following three paragraphs, a "patent license" is any express 481 | agreement or commitment, however denominated, not to enforce a patent 482 | (such as an express permission to practice a patent or covenant not to 483 | sue for patent infringement). To "grant" such a patent license to a 484 | party means to make such an agreement or commitment not to enforce a 485 | patent against the party. 486 | 487 | If you convey a covered work, knowingly relying on a patent license, 488 | and the Corresponding Source of the work is not available for anyone 489 | to copy, free of charge and under the terms of this License, through a 490 | publicly available network server or other readily accessible means, 491 | then you must either (1) cause the Corresponding Source to be so 492 | available, or (2) arrange to deprive yourself of the benefit of the 493 | patent license for this particular work, or (3) arrange, in a manner 494 | consistent with the requirements of this License, to extend the patent 495 | license to downstream recipients. "Knowingly relying" means you have 496 | actual knowledge that, but for the patent license, your conveying the 497 | covered work in a country, or your recipient's use of the covered work 498 | in a country, would infringe one or more identifiable patents in that 499 | country that you have reason to believe are valid. 500 | 501 | If, pursuant to or in connection with a single transaction or 502 | arrangement, you convey, or propagate by procuring conveyance of, a 503 | covered work, and grant a patent license to some of the parties 504 | receiving the covered work authorizing them to use, propagate, modify 505 | or convey a specific copy of the covered work, then the patent license 506 | you grant is automatically extended to all recipients of the covered 507 | work and works based on it. 508 | 509 | A patent license is "discriminatory" if it does not include within 510 | the scope of its coverage, prohibits the exercise of, or is 511 | conditioned on the non-exercise of one or more of the rights that are 512 | specifically granted under this License. You may not convey a covered 513 | work if you are a party to an arrangement with a third party that is 514 | in the business of distributing software, under which you make payment 515 | to the third party based on the extent of your activity of conveying 516 | the work, and under which the third party grants, to any of the 517 | parties who would receive the covered work from you, a discriminatory 518 | patent license (a) in connection with copies of the covered work 519 | conveyed by you (or copies made from those copies), or (b) primarily 520 | for and in connection with specific products or compilations that 521 | contain the covered work, unless you entered into that arrangement, 522 | or that patent license was granted, prior to 28 March 2007. 523 | 524 | Nothing in this License shall be construed as excluding or limiting 525 | any implied license or other defenses to infringement that may 526 | otherwise be available to you under applicable patent law. 527 | 528 | 12. No Surrender of Others' Freedom. 529 | 530 | If conditions are imposed on you (whether by court order, agreement or 531 | otherwise) that contradict the conditions of this License, they do not 532 | excuse you from the conditions of this License. If you cannot convey a 533 | covered work so as to satisfy simultaneously your obligations under this 534 | License and any other pertinent obligations, then as a consequence you may 535 | not convey it at all. For example, if you agree to terms that obligate you 536 | to collect a royalty for further conveying from those to whom you convey 537 | the Program, the only way you could satisfy both those terms and this 538 | License would be to refrain entirely from conveying the Program. 539 | 540 | 13. Remote Network Interaction; Use with the GNU General Public License. 541 | 542 | Notwithstanding any other provision of this License, if you modify the 543 | Program, your modified version must prominently offer all users 544 | interacting with it remotely through a computer network (if your version 545 | supports such interaction) an opportunity to receive the Corresponding 546 | Source of your version by providing access to the Corresponding Source 547 | from a network server at no charge, through some standard or customary 548 | means of facilitating copying of software. This Corresponding Source 549 | shall include the Corresponding Source for any work covered by version 3 550 | of the GNU General Public License that is incorporated pursuant to the 551 | following paragraph. 552 | 553 | Notwithstanding any other provision of this License, you have 554 | permission to link or combine any covered work with a work licensed 555 | under version 3 of the GNU General Public License into a single 556 | combined work, and to convey the resulting work. The terms of this 557 | License will continue to apply to the part which is the covered work, 558 | but the work with which it is combined will remain governed by version 559 | 3 of the GNU General Public License. 560 | 561 | 14. Revised Versions of this License. 562 | 563 | The Free Software Foundation may publish revised and/or new versions of 564 | the GNU Affero General Public License from time to time. Such new versions 565 | will be similar in spirit to the present version, but may differ in detail to 566 | address new problems or concerns. 567 | 568 | Each version is given a distinguishing version number. If the 569 | Program specifies that a certain numbered version of the GNU Affero General 570 | Public License "or any later version" applies to it, you have the 571 | option of following the terms and conditions either of that numbered 572 | version or of any later version published by the Free Software 573 | Foundation. If the Program does not specify a version number of the 574 | GNU Affero General Public License, you may choose any version ever published 575 | by the Free Software Foundation. 576 | 577 | If the Program specifies that a proxy can decide which future 578 | versions of the GNU Affero General Public License can be used, that proxy's 579 | public statement of acceptance of a version permanently authorizes you 580 | to choose that version for the Program. 581 | 582 | Later license versions may give you additional or different 583 | permissions. However, no additional obligations are imposed on any 584 | author or copyright holder as a result of your choosing to follow a 585 | later version. 586 | 587 | 15. Disclaimer of Warranty. 588 | 589 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY 590 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT 591 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY 592 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, 593 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 594 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM 595 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF 596 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 597 | 598 | 16. Limitation of Liability. 599 | 600 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 601 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 602 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY 603 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE 604 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF 605 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD 606 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), 607 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF 608 | SUCH DAMAGES. 609 | 610 | 17. Interpretation of Sections 15 and 16. 611 | 612 | If the disclaimer of warranty and limitation of liability provided 613 | above cannot be given local legal effect according to their terms, 614 | reviewing courts shall apply local law that most closely approximates 615 | an absolute waiver of all civil liability in connection with the 616 | Program, unless a warranty or assumption of liability accompanies a 617 | copy of the Program in return for a fee. 618 | 619 | END OF TERMS AND CONDITIONS 620 | 621 | How to Apply These Terms to Your New Programs 622 | 623 | If you develop a new program, and you want it to be of the greatest 624 | possible use to the public, the best way to achieve this is to make it 625 | free software which everyone can redistribute and change under these terms. 626 | 627 | To do so, attach the following notices to the program. It is safest 628 | to attach them to the start of each source file to most effectively 629 | state the exclusion of warranty; and each file should have at least 630 | the "copyright" line and a pointer to where the full notice is found. 631 | 632 | 633 | Copyright (C) 634 | 635 | This program is free software: you can redistribute it and/or modify 636 | it under the terms of the GNU Affero General Public License as published 637 | by the Free Software Foundation, either version 3 of the License, or 638 | (at your option) any later version. 639 | 640 | This program is distributed in the hope that it will be useful, 641 | but WITHOUT ANY WARRANTY; without even the implied warranty of 642 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 643 | GNU Affero General Public License for more details. 644 | 645 | You should have received a copy of the GNU Affero General Public License 646 | along with this program. If not, see . 647 | 648 | Also add information on how to contact you by electronic and paper mail. 649 | 650 | If your software can interact with users remotely through a computer 651 | network, you should also make sure that it provides a way for users to 652 | get its source. For example, if your program is a web application, its 653 | interface could display a "Source" link that leads users to an archive 654 | of the code. There are many ways you could offer source, and different 655 | solutions will be better for different programs; see section 13 for the 656 | specific requirements. 657 | 658 | You should also get your employer (if you work as a programmer) or school, 659 | if any, to sign a "copyright disclaimer" for the program, if necessary. 660 | For more information on this, and how to apply and follow the GNU AGPL, see 661 | . 662 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # OCRthyPDF-Essentials 2 | Make your PDF files text-searchable (A GUI for [OCRmyPDF](https://github.com/jbarlow83/OCRmyPDF/)) 3 | 4 | It started with the idea to provide users that are not used to command line tools access to OCRmyPDF's basic features. 5 | 6 | ![OCRthyPDF GUI](https://raw.githubusercontent.com/digidigital/OCRthyPDF-Essentials/main/screenshots/1.png) 7 | 8 | It supports more than 100 languages "out-of-the-box" (all languages that are installed with tesseract). 9 | 10 | The splitter function extends the text recognition provided by OCRmyPDF. It allows scanned documents to be separated at [separator pages](https://github.com/digidigital/OCRthyPDF-Essentials/blob/main/testing/Separator.pdf) - defined by a QR code - before text recognition. A QR code can mark a [separator-only page](https://github.com/digidigital/OCRthyPDF-Essentials/blob/main/testing/Separator.pdf) that is discarded. Alternatively, in sticker mode, the QR code defines the first page of a new document and is retained. 11 | 12 | If you like the results created with OCRthyPDF but need more flexibility I suggest you give [OCRmyPDF](https://github.com/jbarlow83/OCRmyPDF/) a try on the command line. :) 13 | 14 | # How To Install 15 | If you are using Ubuntu or any other Distro that comes with snap pre-installed you can install it directly from the Snap Store 16 | 17 | [![Get it from the Snap Store](https://snapcraft.io/static/images/badges/en/snap-store-black.svg)](https://snapcraft.io/ocrthypdf) 18 | 19 | or you can type 20 | 21 | sudo snap install ocrthypdf 22 | 23 | in your terminal. 24 | 25 | If your Distro does not have snap pre-installed you can find instructions for installing snap [here.](https://snapcraft.io/docs/installing-snapd) 26 | 27 | # Toubleshooting 28 | Snaps run in a restricted environment and need permissions to access files on your computer (Similar to apps on your smartphone). So first check if you have set the correct permissions in the snap store user interface. 29 | 30 | You can start OCRthyPDF from the terminal with 31 | ocrthypdf --log INFO 32 | or 33 | ocrthypdf --log DEBUG 34 | in order to get more info in case the application does not work as expected. 35 | 36 | Info about subprocesses like OCRmyPDF, Splitter, Ghostscript, etc. is displayed in the console tab. Set 'Loglevel' to DEBUG and 'Limit console ...' to 'no' for detailed information. 37 | 38 | :pushpin: Still no clue what went wrong? Report an issue [here](https://github.com/digidigital/OCRthyPDF-Essentials/issues). 39 | 40 | # How To Use It 41 | ![OCRthyPDF GUI Options-Tab](https://raw.githubusercontent.com/digidigital/OCRthyPDF-Essentials/main/screenshots/1.png) 42 | 43 | First you need to select a single PDF **or** a folder containing PDF files that should be processed by OCRmyPDF's character recognition. Then you specify a folder where the new PDFs will be saved. If no output folder is selected, the input folder ist set as output folder as well. 44 | 45 | The switches in the "Options" tab correspond to the values described in the [OCRmyPDF cookbook](https://ocrmypdf.readthedocs.io/en/v12.3.3/cookbook.html) and work exactly the same way. Not all combinations are useful or allowed. OCRthyPDF does not prevent you from setting such combinations. In most cases, OCR will simply refuse to start or abort with an error message. See the Console tab for detailed information about what went wrong. 46 | 47 | :pushpin: Caution: If you leave the postfix field blank and the output is written to the input folder, you will overwrite your source file! :facepalm: 48 | 49 | Start the OCR with the "Start OCR" button. You can press the "Stop OCR" button to stop all running OCR jobs. 50 | 51 | The activity indicator bar flashes while OCR is running. 52 | 53 | ![OCRthyPDF GUI Splitter-Tab](https://raw.githubusercontent.com/digidigital/OCRthyPDF-Essentials/main/screenshots/2.png) 54 | 55 | The splitter enables you to split a PDF-file into separate files based on a separator barcode / QR-Code. This is very handy if you have to scan a lot of (multi-page) documents and don't want to scan each document separately. Just put a [separator page](https://github.com/digidigital/OCRthyPDF-Essentials/blob/main/testing/Separator.pdf) between each document and scan them at once! 56 | 57 | In order to avctivate the splitter set "Run splitter after OCR" to "yes". 58 | 59 | In the next field you have to specify a separator text. The splitter tries to find a QR code on each page and compares it's content with this text. 60 | 61 | The next switch selects the separator mode. By default, the separation page is omitted and not included in the output files. In Sticker Mode 62 | a QR-Code starts a new segment and the page will be added to the output. Each segment/document will be saved with a segment number as postfix. 63 | You can download standard QR-Codes with text "NEXT" [here](https://github.com/digidigital/OCRthyPDF-Essentials/raw/main/testing/barcodesQR.zip). 64 | 65 | You can use the pattern | in your QR-Code to add a custom postfix to the filename by using Sticker Mode. Use individual 66 | postfixes in each code since no segment numbers are added in this mode if a custom postfix is found. 67 | 68 | :pushpin: Examples for useful QR-Codes in Sticker Mode: 69 | - NEXT|CoverLetter - NEXT|Attachments 70 | - NEXT|CoverLetter_Miller - NEXT|CoverLetter_Smith 71 | 72 | :pushpin: If you select the option not to use the source filename in the output filename you are able to set the filenames by using the custom postfixes (if you leave the postfix field in the options tab blank). 73 | 74 | Before Splitter starts analyzing the pages of a PDF file, the source PDF file is rewritten with Ghostscript to work around some common problems with PDF files created by scanners/MFPs. Splitter looks for QR codes in the rewritten file, but assembles the split files directly from the source file. 75 | 76 | You can limit the QR-code search area to speed up splitting. 1 -> Search whole page, 0.5 -> search upper left quadrant of page, 0.25 -> search upper left quadrant of upper left quadrant. 77 | 78 | If you need the raw text of the final PDF-files set "Save text as separate .txt files" to "yes". 79 | 80 | ![OCRthyPDF GUI Language-Tab](https://raw.githubusercontent.com/digidigital/OCRthyPDF-Essentials/main/screenshots/3.png) 81 | 82 | The Language tab lets you select the languages present in your documents. The default selection is English and the language of your desktop environment. Since the result of OCR **strongly** depends on this selection, you should select all languages you need and deselect all languages you don't! 83 | 84 | Language options with the "best-" prefix should give better results than the default options, but OCR may take longer. 85 | 86 | You can specify a location of a user words text file. This is a list of words (one word in each line) Tesseract should consider while performing OCR in addition to its standard language dictionaries. This can improve OCR quality especially for specialized and technical documents. 87 | 88 | ![OCRthyPDF GUI Console-Tab](https://raw.githubusercontent.com/digidigital/OCRthyPDF-Essentials/main/screenshots/4.png) 89 | 90 | In the console you can see the output of the processes working "under the hood". This is helpful in case the results are different than expected or the OCR terminates with an error code. You can select the log levels "INFO" (status messages when everything works as expected) and "DEBUG" (a lot of detailed information). By default, the console shows the output of the last subprocess and is cleaned up when a new subprocess is started. You can set the console to show the information of all subprocesses without cleanup. 91 | 92 | The bars at the bottom indicates the status of the OCR job queue. "Queue" refers to documents waiting to be processed. 93 | 94 | A German version of this text can be found [here](https://github.com/digidigital/OCRthyPDF-Essentials/blob/main/README_deutsch.md). 95 | -------------------------------------------------------------------------------- /README_deutsch.md: -------------------------------------------------------------------------------- 1 | # OCRthyPDF - Eine grafische Benutzeroberfläche für OCRmyPDF 2 | 3 | Originaltext auf: [blog.digidigital.de](https://blog.digidigital.de/?p=525&lang=de_DE) 4 | 5 | Da es leider immer wieder vorkommt, dass die Originaldateien eingescannter Texte nicht mehr vorliegen (oder nicht mehr gefunden werden können), muss in diesen Fällen eine Texterkennung bemüht werden, um aus den Bilddateien in den PDFs editierbaren Text zu erzeugen. Das Kommandozeilentool [OCRmyPDF](https://github.com/jbarlow83/OCRmyPDF/) von James Barlow hat mir diesbezüglich schon häufig das Leben im Umgang mit eingescannten Textdateien erleichtert. 6 | 7 | Da es ich keine einfach gehaltene grafische Benutzeroberfläche finden konnte, kam mir die Idee zu OCRthyPDF – Einer Benutzeroberfläche, die Anwendern, die nicht an die Benutzung von Kommandozeilen-Tools gewöhnt sind, den Zugang zu den grundlegenden Funktionen von OCRmyPDF ermöglicht. 8 | 9 | ![OCRthyPDF GUI](https://raw.githubusercontent.com/digidigital/OCRthyPDF-Essentials/main/screenshots/1.png) 10 | 11 | Die Splitter-Funktion erweitert die von OCRmyPDF bereitgestellte Funktionalität um die Option, gescannte Dokumente vor der Texterkennung an [Trennseiten](https://github.com/digidigital/OCRthyPDF-Essentials/blob/main/testing/Separator.pdf) – definiert durch einen QR-Code – zu trennen. Ein QR-Code kann beispielsweise eine [reine Trennseite](https://github.com/digidigital/OCRthyPDF-Essentials/blob/main/testing/Separator.pdf) markieren, die bei der Erstellung der Zieldokumente verworfen wird. Alternativ kann der QR-Code im Aufklebermodus (Sticker Mode) die erste Seite eines neuen Dokuments markieren und wird beibehalten. 12 | 13 | # Download und Installationshinweise 14 | Wenn du Ubuntu oder eine andere Linux-Distro verwendst, auf der Snap / (Gnome Software) bereits vorinstalliert ist, kannst du OCRthy PDF direkt aus dem Store installieren. 15 | 16 | [![Get it from the Snap Store](https://snapcraft.io/static/images/badges/en/snap-store-black.svg)](https://snapcraft.io/ocrthypdf) 17 | 18 | Alternativ gibst du im Terminal 19 | 20 | sudo snap install ocrthypdf 21 | 22 | ein. 23 | 24 | Wenn deine Distro Gnome Software / snap nicht vorinstalliert hat, findest du [hier](https://snapcraft.io/docs/installing-snapd) eine Anleitung zur Installation. 25 | 26 | # Fehlersuche 27 | Snaps werden in einer eingeschränkten Umgebung ausgeführt und benötigen Berechtigungen für den Zugriff auf Dateien auf deinem Rechner (ähnlich wie Apps auf dem Smartphone). Prüfe daher zunächst, ob du die richtigen Berechtigungen in der Benutzeroberfläche des Stores eingestellt hast. 28 | 29 | Du kannst OCRthyPDF über das Terminal mit ocrthypdf --log INFO oder ocrthypdf --log DEBUG starten, um weitere Informationen zu erhalten, falls die Anwendung nicht wie erwartet funktioniert. 30 | 31 | Informationen zu Unterprozessen wie OCRmyPDF, Splitter, Ghostscript usw. werden innerhalb der Registerkarte ‚Console‘ angezeigt. Setze den ‚Loglevel‘ auf DEBUG und ‚Limit console …‘ auf ’no‘ für eine detailliertere Ausgabe. 32 | 33 | :pushpin: Logs gecheckt und keine Ahnung, was schief gelaufen ist? Melde dein Problem hier. 34 | 35 | # Kurzanleitung 36 | ![OCRthyPDF GUI Options-Tab](https://raw.githubusercontent.com/digidigital/OCRthyPDF-Essentials/main/screenshots/1.png) 37 | 38 | Zuerst musst du ein einzelnes PDF **oder** einen Ordner mit PDF-Dateien auswählen, die von der Zeichenerkennung verarbeitet werden sollen. Dann gibst du einen Ordner an, in dem die neuen PDFs gespeichert werden sollen. Wenn kein Ausgabeordner ausgewählt wird, wird der Eingabeordner automatisch als Ausgabeordner vorbelegt. 39 | 40 | Die Einstellungen in der Registerkarte „Optionen“ entsprechen den im OCRmyPDF cookbook beschriebenen Werten und funktionieren genau so. Nicht alle Kombinationen sind sinnvoll oder erlaubt. OCRthyPDF hindert dich nicht, solche Kombinationen einzustellen. In den meisten Fällen verweigert die Texterkennung einfach den Start oder bricht mit einer Fehlermeldung ab. In der Registerkarte ‚Console‘ findst du in diesen Fällen ausführliche Informationen darüber, was schief gelaufen ist. 41 | 42 | :stop_sign: Vorsicht! Wenn du das Postfix-Feld leer lässt und die Ausgabe in den Eingabeordner geschrieben wird, überschreibst du die Quelldatei! :facepalm: 43 | 44 | Starte die Texterkennung mit der Schaltfläche „Start OCR“. Du kannst die Schaltfläche „Stop OCR“ drücken, um alle laufenden OCR-Aufträge anzuhalten. 45 | 46 | Der Aktivitätsbalken neben den Buttons blinkt, während die OCR läuft. 47 | 48 | ![OCRthyPDF GUI Splitter-Tab](https://raw.githubusercontent.com/digidigital/OCRthyPDF-Essentials/main/screenshots/2.png) 49 | 50 | Der Splitter ermöglicht es dir, eine PDF-Datei anhand eines Barcodes / QR-Codes in einzelne Dateien aufzuteilen. Das ist praktisch, wenn du viele (mehrseitige) Dokumente scannen musst und nicht jedes Dokument einzeln in den Scanner legen möchtest. Lege einfach eine [Tennseite](https://github.com/digidigital/OCRthyPDF-Essentials/blob/main/testing/Separator.pdf) zwischen die einzelnen Dokumente und scanne sie auf einmal! 51 | 52 | Um den Splitter zu aktivieren, setze „Run splitter after OCR“ auf „yes“. 53 | 54 | Im nächsten Feld musst du den Trenntext angeben. Der Splitter versucht, auf jeder Seite QR-Codes zu finden und vergleicht deren Inhalt mit diesem Text. 55 | 56 | Der nächste Schalter wählt den Trennblattmodus aus. Standardmäßig wird die Trennseite weggelassen und nicht in die Ausgabedateien übernommen. Im Aufklebermodus (Sticker Mode) beginnt ein QR-Code ein neues Segment und die Seite wird der Ausgabe hinzugefügt. Jedes Segment/Dokument wird mit seiner Segmentnummer als Postfix gespeichert. Standard-QR-Codes mit dem Text „NEXT“ kannst du [hier](https://github.com/digidigital/OCRthyPDF-Essentials/raw/main/testing/barcodesQR.zip) herunterladen. 57 | 58 | Du kannst das Muster | in deinen QR-Codes verwenden, um ein benutzerdefiniertes Postfix an den Dateinamen anzuhängen. Die entsprechende Funktion stellt der Sticker Modus bereit. Verwende individuelle Postfixe in jedem Code, da in diesem Modus keine Segmentnummern hinzugefügt werden, sofern ein benutzerdefiniertes Postfix gefunden wird. 59 | 60 | :pushpin: Beispiele für nützliche QR-Codes im Sticker-Modus: 61 | 62 | - NEXT|Anschreiben , NEXT|Lebenslauf , NEXT|Anlagen 63 | - NEXT|Bewerbung_Meier , NEXT|Bewerbung_Schmidt 64 | 65 | :pushpin: Wenn du die Option wählst, den Quelldateinamen nicht im Ausgabedateinamen zu verwenden, kannst du die Dateinamen mit Hilfe der benutzerdefinierten Postfixe festlegen (Dann auch das Postfix-Feld in der Registerkarte ‚Optionen‘ leer lassen). 66 | 67 | Bevor Splitter mit der Analyse der Seiten einer PDF-Datei beginnt, wird die Quell-PDF-Datei mit Ghostscript umgeschrieben, um einige häufige Probleme mit PDF-Dateien, die von Scannern/MFPs erzeugt werden, zu umgehen. Splitter sucht dann in der umgeschriebenen Datei nach QR-Codes, setzt aber die geteilten Dateien direkt aus der Quelldatei zusammen. 68 | 69 | :stop_sign: Hinweis: Wenn du gescannte Dokumente aufteilst, die lediglich Bitmap-Bilder enthalten, sollte die Aktivierung dieser Option kein Problem darstellen. Wenn du jedoch Dokumente aufteilst, die auch andere Elemente enthalten (Text, Schriftarten, Vektorzeichnungen usw.), kann das Ergebnis von der Quelle abweichen und du verlierst ggf. einige Inhalte oder Schriften! 70 | 71 | ![OCRthyPDF GUI Language-Tab](https://raw.githubusercontent.com/digidigital/OCRthyPDF-Essentials/main/screenshots/3.png) 72 | 73 | In der Registerkarte 'Languages' kannst du die Sprachen (über 100 werden unterstützt!) auswählen, die in deinen Dokumenten genutzt werden. Die Standardauswahl ist Englisch und die Sprache deiner Desktop-Umgebung. Da das Ergebnis der OCR **stark** von dieser Auswahl abhängt, solltest du alle Sprachen auswählen, die du benötigst, und alle anderen Sprachen abwählen! 74 | 75 | Sprachen mit einem "best-" Prefix sollten bessere Ergebnisse erzielen, dafür dauert die Texterkennung länger. 76 | 77 | Du kannst den Speicherort einer Textdatei für benutzerdefinierte Wörter angeben. Dies ist eine Liste von Wörtern (ein Wort in jeder Zeile), die Tesseract 78 | bei der OCR zusätzlich zu seinen Standard-Sprachwörterbüchern nutzen soll. Dies kann die Texterkennungsqualität - insbesondere bei technischen oder fachspezifischen Dokumenten - verbessern. 79 | 80 | ![OCRthyPDF GUI Console-Tab](https://raw.githubusercontent.com/digidigital/OCRthyPDF-Essentials/main/screenshots/4.png) 81 | 82 | In der Konsole kannst du die Ausgabe der Prozesse sehen, die „unter der Haube“ arbeiten. Dies ist hilfreich, falls die Texterkennung anders als erwartet ausfällt oder die Anwendung mit einem Fehlercode die Dokumentenbearbeitung abbricht. du kannst zwischen den Logleveln „INFO“ (Statusmeldungen, wenn alles wie erwartet funktioniert) und „DEBUG“ (viele detaillierte Informationen) wählen. Standardmäßig zeigt die Konsole nur die Ausgabe des letzten Unterprozesses an und wird bereinigt, wenn ein neuer Unterprozess gestartet wird. Du kannst die Konsole jedoch auch so einstellen, dass sie die Informationen aller Unterprozesse eines OCR-Auftrages ohne Bereinigung anzeigt. 83 | 84 | Der Balken am unteren Rand zeigt den Status der Warteschlang für OCR-Aufträge (Texterkennung) an. Die „Warteschlange“ bezieht sich auf Dokumente, die auf ihre Verarbeitung warten. 85 | 86 | # Weiterführende Links 87 | 88 | Alternative Software und weitere Informationen zum Thema findest du unter anderem hier: 89 | 90 | - [Tesseract – Die von OCRmyPDF genutze Texterkennung](https://github.com/tesseract-ocr/tesseract) 91 | - [Onlinedokumentation von OCRmyPDF](https://ocrmypdf.readthedocs.io/en/latest/index.html) 92 | - [ocrmypdfgui – Eine Alternative zu OCRthyPDF](https://snapcraft.io/ocrmypdfgui) 93 | - [scanprep – Ein alternativer Splitter auf der Kommadozeile](https://snapcraft.io/scanprep) 94 | - [pdfQRSplit – Ein weiterer Splitter auf der kommandozeile](https://github.com/adlerweb/PdfQRSplit) 95 | 96 | -------------------------------------------------------------------------------- /code/splitter.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | #Version 0.7.1 3 | 4 | import logging 5 | import argparse 6 | import subprocess 7 | import shlex 8 | import sys 9 | import time 10 | import concurrent.futures 11 | import pdftotext 12 | from pyzbar.pyzbar import decode, ZBarSymbol 13 | from tempfile import TemporaryDirectory 14 | from pikepdf import Pdf, PdfImage, PdfError, _cpphelpers 15 | from os import path 16 | from multiprocessing import cpu_count 17 | from shutil import copy2 18 | 19 | def searchPDF (PDFfile, separator): 20 | try: 21 | startAnalysisTime = time.time() 22 | with open(PDFfile, "rb") as fp: 23 | pdfAsText = pdftotext.PDF(fp) 24 | separatorPages={} 25 | pageNumber=0 26 | for page in pdfAsText: 27 | logging.info('Searching for separator on page: %d'% (pageNumber+1)) 28 | if str(page).find(separator) != -1: 29 | separatorPages[pageNumber]='' 30 | logging.info('Found separator on page: %d'% (pageNumber+1)) 31 | pageNumber += 1 32 | logging.info('Analysis completed: %d separators found on %d pages. This step took about %d seconds'%(len(separatorPages),pageNumber, int(time.time() - startAnalysisTime))) 33 | return separatorPages 34 | except Exception as error: 35 | logging.critical('Text-searching file %s failed. %e' % (PDFfile, error)) 36 | return separatorPages 37 | 38 | def analyzePage(PDF, pageNumber, separator='NEXT', mode='QR', cropfactor=1): 39 | 40 | #Set separatorCode to None. If separatorCode has any other value than None 41 | #a separator was found on the page 42 | separatorCode=None 43 | logging.debug('Analyzing page: %d'% (pageNumber+1)) 44 | 45 | if mode == 'QR': 46 | symbols = [ZBarSymbol.QRCODE] 47 | else: 48 | symbols = None 49 | 50 | for image in PDF.pages[0].images.keys(): 51 | uncroppedImage = PdfImage(PDF.pages[0].images[image]).as_pil_image() 52 | width, height = uncroppedImage.size 53 | cropbox=(0, 0, int(width*cropfactor), int(height*cropfactor)) 54 | pdfimage = uncroppedImage.crop(cropbox) 55 | uncroppedImage.close() 56 | 57 | logging.debug('Extracting and analyzing an image of type %s on page %d' % (type(pdfimage),pageNumber+1)) 58 | 59 | try: 60 | barcodes = decode(pdfimage, symbols) 61 | 62 | except Exception as error: 63 | logging.debug('Decoding barcode failed. Skipping one image on page %d - %s' % (pageNumber+1, error)) 64 | continue 65 | 66 | pdfimage.close() 67 | 68 | for barcode in barcodes: 69 | 70 | barcodeText=str(barcode.data.decode("utf-8")) 71 | logging.debug('QR-Code / Barcode containing text "%s" found on page %d. Use | as delimiter if you want to use a custom postfix' % (str(barcodeText), pageNumber+1)) 72 | barcodeComponents = barcodeText.split('|',1) 73 | 74 | if len(barcodeComponents)==2 and barcodeComponents[0] == separator: 75 | separatorCode = str(barcodeComponents[1]) 76 | #Do not checkfor barcodes in remaining data 77 | break 78 | 79 | elif barcodeComponents[0] == separator: 80 | separatorCode = '' 81 | #Do not check for barcodes in remaining data 82 | break 83 | 84 | else: 85 | logging.debug('Ignored. Reason: "%s" on page %d does not start with separator "%s". Use | as delimiter if you want to use a custom postfix' % (str(barcodeText), pageNumber+1, separator)) 86 | continue 87 | 88 | 89 | 90 | #Skip remaining images if valid separator was found on page 91 | if separatorCode != None: 92 | break 93 | 94 | return (pageNumber,separatorCode) 95 | 96 | def savePDFTextFile(PDFfile): 97 | '''Save text in PDF file to a text file''' 98 | logging.debug('Saving text %s.txt file' % PDFfile) 99 | try: 100 | with open(PDFfile, "rb") as fp: 101 | pdfAsText = pdftotext.PDF(fp) 102 | with open(PDFfile+'.txt', 'w') as f: 103 | for page in pdfAsText: 104 | f.write('%s\n' % page) 105 | except Exception as error: 106 | logging.critical('Saving text file %s failed. %e' % (PDFfile, error)) 107 | return 108 | logging.debug('Text file saved') 109 | 110 | 111 | def splitPDF(filename:str, outpath:str, separator='NEXT', mode='QR', stickerMode=False, dropName=False, workers=0, skipRewrite=False, cropfactor=1, extractText=False): 112 | startSplitTime = time.time() 113 | if not skipRewrite: 114 | logging.debug('Rewriting PDF %s to temporary file.' % filename) 115 | tempSourceDir = TemporaryDirectory() 116 | rewrittenPDF = path.join(tempSourceDir.name, "tempPDF.pdf") 117 | 118 | gsQuiet='' 119 | #gsQuiet=' -q ' 120 | 121 | # Rewrite PDF and try to fix issues 122 | # Remove images if searching for keywords, remove text if searching for QR/Barcodes 123 | if mode == "KEYWORD": 124 | gsFilter = ' -dFILTERIMAGE -dFILTERVECTOR ' 125 | else: 126 | gsFilter = ' -dFILTERTEXT -dFILTERVECTOR ' 127 | 128 | command = shlex.split("gs -o " + rewrittenPDF + gsQuiet + " -sDEVICE=pdfwrite " + gsFilter + " -dPDFSETTINGS=/default -dNEWPDF -sstdout=%stderr '" + filename + "'") 129 | 130 | logging.debug(command) 131 | try: 132 | subprocess.run(command) 133 | logging.debug('Rewriting completed after %d seconds.'%(int(time.time() - startSplitTime))) 134 | except Exception as error: 135 | logging.debug('Rewriting failed. Is Ghostscript installed and in PATH? %s' % error) 136 | sys.exit("Unable to start rewrite step. Is Ghostscript installed?") 137 | loadpdf = rewrittenPDF 138 | else: 139 | logging.debug('Rewriting is skipped. Working with source PDF.') 140 | loadpdf = filename 141 | 142 | try: 143 | pdf = Pdf.open(loadpdf) 144 | except Exception as error: 145 | logging.critical('Loading PDF %s failed. %s' % (loadpdf, error)) 146 | sys.exit("Unable to open PDF file.") 147 | 148 | if not outpath: 149 | outpath=path.dirname(filename) 150 | 151 | if dropName == True: 152 | sourceName = '' 153 | else: 154 | sourceName = path.basename(filename).split('.',1)[0]+'_' 155 | 156 | # key: page number where barcode was found, value: a value in the barcode separated 157 | # by | or the number of QR-Codes found 158 | separatorPages={} 159 | 160 | if workers > 0: 161 | max_workers = workers 162 | else: 163 | max_workers = cpu_count() - 1 164 | 165 | if mode != 'KEYWORD': 166 | # let's see how quick we can analyze the pages in multiprocessing/threading 167 | startAnalysisTime = time.time() 168 | logging.debug('Extracting images and searching for QR-Codes / Barcodes') 169 | 170 | pageCollection=[] 171 | #creating single page PDFs since passing a page directly raises a pickle exception / images can not be accessed :( 172 | for page in pdf.pages: 173 | tempPDF = Pdf.new() 174 | tempPDF.pages.append(page) 175 | pageCollection.append(tempPDF) 176 | pdf.close() 177 | 178 | logging.debug('Analyzing pages with %d workers' % (max_workers)) 179 | with concurrent.futures.ThreadPoolExecutor(max_workers) as executor: 180 | future_page_analyzer = {executor.submit(analyzePage, pageCollection[pageNumber], pageNumber, separator, mode, cropfactor): pageNumber for pageNumber in range(len(pdf.pages))} 181 | for future in concurrent.futures.as_completed(future_page_analyzer): 182 | thread = future_page_analyzer[future] 183 | try: 184 | if future.result()[1] != None: 185 | separatorPages[future.result()[0]]=future.result()[1] 186 | 187 | except Exception as exc: 188 | logging.debug('Thread %r generated an exception: %s' % (thread, exc)) 189 | 190 | logging.debug('Analysis completed: %d separators found on %d pages. This step took about %d seconds'%(len(separatorPages),len(pdf.pages), int(time.time() - startAnalysisTime))) 191 | 192 | pageCollection.clear() 193 | 194 | else: 195 | separatorPages = searchPDF (filename, separator) 196 | 197 | # All filenames created while splitting go here 198 | fileList=[] 199 | 200 | if len(separatorPages)>0: 201 | logging.debug('Pages will be copied from original PDF.') 202 | 203 | try: 204 | sourcePDF = Pdf.open(filename) 205 | except: 206 | logging.critical('Loading of PDF %s failed.' % filename) 207 | sys.exit("Unable to open PDF file.") 208 | 209 | #Separator pages start new segment and will be kept 210 | if stickerMode == True: 211 | logging.debug('Assembling PDFs in "Sticker Mode"') 212 | pageList=sorted(separatorPages.keys()) 213 | for x in range (0,len(pageList)): 214 | 215 | startPage=pageList[x] 216 | 217 | if x == len(pageList)-1: 218 | #Last segment ends with last page of PDF 219 | endPage=len(sourcePDF.pages) 220 | else: 221 | #Stop segment one Page before another QR-Code was found 222 | endPage=pageList[x+1] 223 | 224 | splitPDF = Pdf.new() 225 | 226 | #is either part of QR-Code or index number 227 | filenamePostfix=str(separatorPages[pageList[x]]) 228 | if filenamePostfix=='': 229 | filenamePostfix = "%04d"% (x+1) 230 | 231 | pageRange = range (startPage, endPage) 232 | for includePage in pageRange: 233 | logging.debug('Adding source page %d to new PDF' % (includePage+1)) 234 | splitPDF.pages.append(sourcePDF.pages[includePage]) 235 | saveAs = path.join(outpath , str(sourceName) + str(filenamePostfix) + '.pdf') 236 | logging.debug('Saving PDF: %s' % (saveAs)) 237 | fileList.append(saveAs) 238 | try: 239 | splitPDF.save(saveAs) 240 | splitPDF.close() 241 | except Exception as e: 242 | logging.critical('Saving split PDF %s failed. %s' % (saveAs, e)) 243 | continue 244 | 245 | try: 246 | if extractText==True: 247 | savePDFTextFile (saveAs) 248 | except Exception as e: 249 | logging.critical('Saving PDF %s failed. %s' % (saveAs, e)) 250 | continue 251 | 252 | #Separator pages are dropped 253 | else: 254 | logging.debug('Assembling PDFs in "Separator Page Mode"') 255 | startPage=0 256 | pageList=sorted(separatorPages.keys()) 257 | 258 | #Multithreading candidate?? 259 | for x in range (0,len(pageList)+1): 260 | 261 | if x == len(pageList): 262 | #Last segment ends with last page of PDF 263 | endPage=len(sourcePDF.pages) 264 | else: 265 | #Stop at page before separator was found 266 | endPage=pageList[x] 267 | splitPDF = Pdf.new() 268 | 269 | filenamePostfix= "%04d" % (x+1) 270 | 271 | hasPages = False 272 | 273 | pageRange = range (startPage, endPage) 274 | for includePage in pageRange: 275 | logging.debug('Adding source page %d to new PDF' % (includePage+1)) 276 | splitPDF.pages.append(sourcePDF.pages[includePage]) 277 | hasPages = True 278 | if hasPages: 279 | saveAs = path.join(outpath , str(sourceName) + str(filenamePostfix) + '.pdf') 280 | logging.info('Saving PDF: %s' % (saveAs)) 281 | fileList.append(saveAs) 282 | try: 283 | splitPDF.save(saveAs) 284 | splitPDF.close() 285 | except Exception as e: 286 | logging.critical('Saving raw text of split PDF %s failed. %s' % (saveAs, e)) 287 | continue 288 | 289 | try: 290 | if extractText==True: 291 | savePDFTextFile (saveAs) 292 | except Exception as e: 293 | logging.critical('Saving raw text of split PDF %s failed. %s' % (saveAs, e)) 294 | continue 295 | 296 | 297 | 298 | else: 299 | logging.debug('Segment %s has no pages. Separator on first page, last page or on consecutive pages?'% (str(filenamePostfix))) 300 | 301 | 302 | startPage=endPage+1 303 | logging.info('Finished splitting %s in: %d seconds.'%(filename, int(time.time() - startSplitTime))) 304 | 305 | sourcePDF.close() 306 | 307 | if len(fileList) == 0: 308 | saveAs = path.join(outpath , path.basename(filename)) 309 | try: 310 | logging.debug('Start to copy') 311 | copy2(filename, saveAs) 312 | fileList.append(saveAs) 313 | logging.info('%s copied to %s' % (filename, saveAs)) 314 | try: 315 | if extractText==True: 316 | savePDFTextFile (saveAs) 317 | except Exception as e: 318 | logging.critical('Saving raw text of PDF %s failed. %s' % (saveAs, e)) 319 | except: 320 | logging.critical('Writing source file to output folder failed') 321 | 322 | logging.debug('Total time: %d seconds.'%(int(time.time() - startSplitTime))) 323 | return fileList 324 | 325 | 326 | if __name__ == "__main__": 327 | 328 | parser = argparse.ArgumentParser(description="""Split a PDF-file into separate files based on a separator QR-Code / barcode / keyword. 329 | Without --sticker-mode the separator page will be discarded. In Sticker Mode 330 | a separator starts a new segment and the page will be added to the output. 331 | Be sure to add a separator to the first page as well when using Sticker Mode. 332 | You can use the pattern | in your QR-Code / Barcode 333 | to add a custom postfix to the filename by using --sticker-mode (Use individual 334 | postfixes in each code since no segment numbers are added). 335 | 336 | Examples: 337 | NEXT|CoverLetter NEXT|Attachments 338 | or 339 | NEXT|CoverLetter_Miller NEXT|CoverLetter_Smith 340 | 341 | If you use Sticker Mode without a custom prefix segment numbers will be added 342 | to the filename.""") 343 | 344 | parser.add_argument('filename', metavar='/path/to/inputfile.pdf', type=str, 345 | help='Filename of PDF') 346 | parser.add_argument('-d', '--drop-filename', action='store_true', 347 | help='Do not use input filename for output filename') 348 | parser.add_argument('-s', '--separator', type=str, default="NEXT", 349 | help='Separator word used to find separator pages. Default: NEXT') 350 | parser.add_argument('--sticker-mode', action='store_true', 351 | help='New PDF-Seqment starts at QR-Code (Page will be kept). Add custom postfix to barcode content by using | as delimiter') 352 | parser.add_argument('-w', '--workers', type=int, default=0, 353 | help='Number of process workers. Default is CPU cores - 1.') 354 | parser.add_argument('-sr', '--skip-rewrite', action='store_true', 355 | help='Skip rewrite / preparation step and work with unaltered source PDF.') 356 | parser.add_argument('-m,', '--mode', default="QR", choices=['QR', 'BARCODE', 'KEYWORD'], 357 | help='Select used separator: QR (default), BARCODE, KEYWORD') 358 | parser.add_argument('-af', '--area-factor', type=float, choices=[(1 * x / 4 ) for x in range(1, 5)], default=1.0, 359 | help='Speed up QR/Barcode search by limiting search area. Origin is top left corner. Default is 1.0 (whole page). E.g. 0.5 is upper left quadrant.') 360 | parser.add_argument('-t', '--extract-text', action='store_true', 361 | help='Save text in separate text file') 362 | parser.add_argument('-o', '--output-folder', metavar='/path/to/output/folder', type=str, 363 | help='Where to save the split files? Default: Same as input folder') 364 | parser.add_argument('--log', default="WARNING", choices=['WARNING', 'INFO', 'DEBUG'], 365 | help='Available log levels: WARNING, INFO, DEBUG') 366 | 367 | args = parser.parse_args() 368 | 369 | #logger = logging.getLogger('splitPDF') 370 | loglevel=logging.getLevelName(args.log.upper()) 371 | if isinstance(loglevel, int): 372 | logging.basicConfig(level=loglevel) 373 | else: 374 | raise ValueError('Invalid log level: %s' % loglevel) 375 | 376 | for file in splitPDF (args.filename, args.output_folder, args.separator, args.mode, args.sticker_mode, args.drop_filename, args.workers, args.skip_rewrite, args.area_factor, args.extract_text): 377 | print(file) 378 | -------------------------------------------------------------------------------- /gui/ocrthypdf.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=OCRthyPDF 3 | GenericName=Document Encryption 4 | Comment=OCR for PDF files 5 | Exec=ocrthypdf 6 | Icon=${SNAP}/gui/ocrthypdf.svg 7 | Terminal=false 8 | Type=Application 9 | Categories=Utility; 10 | StartupNotify=true 11 | -------------------------------------------------------------------------------- /gui/ocrthypdf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digidigital/OCRthyPDF-Essentials/92959b432fb0abb2a5b7b08f843e4335cf9f0d40/gui/ocrthypdf.png -------------------------------------------------------------------------------- /gui/ocrthypdf.svg: -------------------------------------------------------------------------------- 1 | 2 | 14 | 16 | 18 | 22 | 26 | 27 | 29 | 33 | 37 | 38 | 45 | 49 | 54 | 61 | 69 | 74 | 78 | 79 | 88 | 96 | 97 | 99 | 100 | 102 | image/svg+xml 103 | 105 | 106 | 107 | 108 | 109 | 112 | 118 | 124 | 129 | 133 | 137 | 141 | 142 | 147 | 151 | 155 | 159 | 160 | 165 | 169 | 173 | 177 | 178 | 179 | 180 | -------------------------------------------------------------------------------- /licenses/Leptonica_copyright: -------------------------------------------------------------------------------- 1 | This package was debianized by Jeff Breidenbach on 2 | Tue, 27 Jun 2006 14:50:37 -0700. 3 | 4 | It was downloaded from https://github.com/DanBloomberg/leptonica/releases 5 | 6 | Copyright: 7 | 8 | Upstream Author: Dan Bloomberg 9 | 10 | License: 11 | 12 | /*====================================================================* 13 | - Copyright (C) 2001 Leptonica. All rights reserved. 14 | - 15 | - Redistribution and use in source and binary forms, with or without 16 | - modification, are permitted provided that the following conditions 17 | - are met: 18 | - 1. Redistributions of source code must retain the above copyright 19 | - notice, this list of conditions and the following disclaimer. 20 | - 2. Redistributions in binary form must reproduce the above 21 | - copyright notice, this list of conditions and the following 22 | - disclaimer in the documentation and/or other materials 23 | - provided with the distribution. 24 | - 25 | - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 26 | - ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 27 | - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 28 | - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANY 29 | - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 30 | - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 31 | - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 32 | - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 33 | - OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 34 | - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 35 | - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 36 | *====================================================================*/ -------------------------------------------------------------------------------- /licenses/PySimpleGUI_copyright: -------------------------------------------------------------------------------- 1 | PySimpleGUI 2 | 3 | Copyright: mike@PySimpleGUI.org "PySimpleGUI" 4 | Source: https://github.com/PySimpleGUI/PySimpleGUI 5 | 6 | GNU LESSER GENERAL PUBLIC LICENSE 7 | Version 3, 29 June 2007 8 | 9 | Copyright (C) 2007 Free Software Foundation, Inc. 10 | Everyone is permitted to copy and distribute verbatim copies 11 | of this license document, but changing it is not allowed. 12 | 13 | 14 | This version of the GNU Lesser General Public License incorporates 15 | the terms and conditions of version 3 of the GNU General Public 16 | License, supplemented by the additional permissions listed below. 17 | 18 | 0. Additional Definitions. 19 | 20 | As used herein, "this License" refers to version 3 of the GNU Lesser 21 | General Public License, and the "GNU GPL" refers to version 3 of the GNU 22 | General Public License. 23 | 24 | "The Library" refers to a covered work governed by this License, 25 | other than an Application or a Combined Work as defined below. 26 | 27 | An "Application" is any work that makes use of an interface provided 28 | by the Library, but which is not otherwise based on the Library. 29 | Defining a subclass of a class defined by the Library is deemed a mode 30 | of using an interface provided by the Library. 31 | 32 | A "Combined Work" is a work produced by combining or linking an 33 | Application with the Library. The particular version of the Library 34 | with which the Combined Work was made is also called the "Linked 35 | Version". 36 | 37 | The "Minimal Corresponding Source" for a Combined Work means the 38 | Corresponding Source for the Combined Work, excluding any source code 39 | for portions of the Combined Work that, considered in isolation, are 40 | based on the Application, and not on the Linked Version. 41 | 42 | The "Corresponding Application Code" for a Combined Work means the 43 | object code and/or source code for the Application, including any data 44 | and utility programs needed for reproducing the Combined Work from the 45 | Application, but excluding the System Libraries of the Combined Work. 46 | 47 | 1. Exception to Section 3 of the GNU GPL. 48 | 49 | You may convey a covered work under sections 3 and 4 of this License 50 | without being bound by section 3 of the GNU GPL. 51 | 52 | 2. Conveying Modified Versions. 53 | 54 | If you modify a copy of the Library, and, in your modifications, a 55 | facility refers to a function or data to be supplied by an Application 56 | that uses the facility (other than as an argument passed when the 57 | facility is invoked), then you may convey a copy of the modified 58 | version: 59 | 60 | a) under this License, provided that you make a good faith effort to 61 | ensure that, in the event an Application does not supply the 62 | function or data, the facility still operates, and performs 63 | whatever part of its purpose remains meaningful, or 64 | 65 | b) under the GNU GPL, with none of the additional permissions of 66 | this License applicable to that copy. 67 | 68 | 3. Object Code Incorporating Material from Library Header Files. 69 | 70 | The object code form of an Application may incorporate material from 71 | a header file that is part of the Library. You may convey such object 72 | code under terms of your choice, provided that, if the incorporated 73 | material is not limited to numerical parameters, data structure 74 | layouts and accessors, or small macros, inline functions and templates 75 | (ten or fewer lines in length), you do both of the following: 76 | 77 | a) Give prominent notice with each copy of the object code that the 78 | Library is used in it and that the Library and its use are 79 | covered by this License. 80 | 81 | b) Accompany the object code with a copy of the GNU GPL and this license 82 | document. 83 | 84 | 4. Combined Works. 85 | 86 | You may convey a Combined Work under terms of your choice that, 87 | taken together, effectively do not restrict modification of the 88 | portions of the Library contained in the Combined Work and reverse 89 | engineering for debugging such modifications, if you also do each of 90 | the following: 91 | 92 | a) Give prominent notice with each copy of the Combined Work that 93 | the Library is used in it and that the Library and its use are 94 | covered by this License. 95 | 96 | b) Accompany the Combined Work with a copy of the GNU GPL and this license 97 | document. 98 | 99 | c) For a Combined Work that displays copyright notices during 100 | execution, include the copyright notice for the Library among 101 | these notices, as well as a reference directing the user to the 102 | copies of the GNU GPL and this license document. 103 | 104 | d) Do one of the following: 105 | 106 | 0) Convey the Minimal Corresponding Source under the terms of this 107 | License, and the Corresponding Application Code in a form 108 | suitable for, and under terms that permit, the user to 109 | recombine or relink the Application with a modified version of 110 | the Linked Version to produce a modified Combined Work, in the 111 | manner specified by section 6 of the GNU GPL for conveying 112 | Corresponding Source. 113 | 114 | 1) Use a suitable shared library mechanism for linking with the 115 | Library. A suitable mechanism is one that (a) uses at run time 116 | a copy of the Library already present on the user's computer 117 | system, and (b) will operate properly with a modified version 118 | of the Library that is interface-compatible with the Linked 119 | Version. 120 | 121 | e) Provide Installation Information, but only if you would otherwise 122 | be required to provide such information under section 6 of the 123 | GNU GPL, and only to the extent that such information is 124 | necessary to install and execute a modified version of the 125 | Combined Work produced by recombining or relinking the 126 | Application with a modified version of the Linked Version. (If 127 | you use option 4d0, the Installation Information must accompany 128 | the Minimal Corresponding Source and Corresponding Application 129 | Code. If you use option 4d1, you must provide the Installation 130 | Information in the manner specified by section 6 of the GNU GPL 131 | for conveying Corresponding Source.) 132 | 133 | 5. Combined Libraries. 134 | 135 | You may place library facilities that are a work based on the 136 | Library side by side in a single library together with other library 137 | facilities that are not Applications and are not covered by this 138 | License, and convey such a combined library under terms of your 139 | choice, if you do both of the following: 140 | 141 | a) Accompany the combined library with a copy of the same work based 142 | on the Library, uncombined with any other library facilities, 143 | conveyed under the terms of this License. 144 | 145 | b) Give prominent notice with the combined library that part of it 146 | is a work based on the Library, and explaining where to find the 147 | accompanying uncombined form of the same work. 148 | 149 | 6. Revised Versions of the GNU Lesser General Public License. 150 | 151 | The Free Software Foundation may publish revised and/or new versions 152 | of the GNU Lesser General Public License from time to time. Such new 153 | versions will be similar in spirit to the present version, but may 154 | differ in detail to address new problems or concerns. 155 | 156 | Each version is given a distinguishing version number. If the 157 | Library as you received it specifies that a certain numbered version 158 | of the GNU Lesser General Public License "or any later version" 159 | applies to it, you have the option of following the terms and 160 | conditions either of that published version or of any later version 161 | published by the Free Software Foundation. If the Library as you 162 | received it does not specify a version number of the GNU Lesser 163 | General Public License, you may choose any version of the GNU Lesser 164 | General Public License ever published by the Free Software Foundation. 165 | 166 | If the Library as you received it specifies that a proxy can decide 167 | whether future versions of the GNU Lesser General Public License shall 168 | apply, that proxy's public statement of acceptance of any version is 169 | permanent authorization for you to choose that version for the 170 | Library. 171 | -------------------------------------------------------------------------------- /licenses/darkdetect_copyright: -------------------------------------------------------------------------------- 1 | Copyright (c) 2019, Alberto Sottile 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | * Redistributions of source code must retain the above copyright 7 | notice, this list of conditions and the following disclaimer. 8 | * Redistributions in binary form must reproduce the above copyright 9 | notice, this list of conditions and the following disclaimer in the 10 | documentation and/or other materials provided with the distribution. 11 | * Neither the name of "darkdetect" nor the 12 | names of its contributors may be used to endorse or promote products 13 | derived from this software without specific prior written permission. 14 | 15 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 16 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 17 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 18 | DISCLAIMED. IN NO EVENT SHALL "Alberto Sottile" BE LIABLE FOR ANY 19 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 20 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 21 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 22 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 24 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 | -------------------------------------------------------------------------------- /licenses/fonts-arkpandora_copyright: -------------------------------------------------------------------------------- 1 | Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ 2 | Upstream-Name: arkpandora 3 | Source: http://web.archive.org/web/20090917205450/http://www.users.bigpond.net.au/gavindi/ 4 | 5 | Files: * 6 | Copyright: Gavin Graham 7 | License: Bitstream-Vera-Copyright 8 | 9 | Files: debian/* 10 | Copyright: 2013, Vasudev Kamath 11 | 2013, Jonas Smedegaard 12 | License: GPL-3+ 13 | 14 | License: Bitstream-Vera-Copyright 15 | Permission is hereby granted, free of charge, to any person obtaining 16 | a copy of the fonts accompanying this license ("Fonts") and associated 17 | documentation files (the "Font Software"), to reproduce and distribute 18 | the Font Software, including without limitation the rights to use, 19 | copy, merge, publish, distribute, and/or sell copies of the Font 20 | Software, and to permit persons to whom the Font Software is furnished 21 | to do so, subject to the following conditions: 22 | . 23 | The above copyright and trademark notices and this permission notice 24 | shall be included in all copies of one or more of the Font Software 25 | typefaces. 26 | . 27 | The Font Software may be modified, altered, or added to, and in 28 | particular the designs of glyphs or characters in the Fonts may be 29 | modified and additional glyphs or characters may be added to the 30 | Fonts, only if the fonts are renamed to names not containing either 31 | the words "Bitstream" or the word "Vera". 32 | . 33 | This License becomes null and void to the extent applicable to Fonts 34 | or Font Software that has been modified and is distributed under the 35 | "Bitstream Vera" names. 36 | . 37 | The Font Software may be sold as part of a larger software package but 38 | no copy of one or more of the Font Software typefaces may be sold by 39 | itself. 40 | . 41 | THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 42 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF 43 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT 44 | OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL 45 | BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR 46 | OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, 47 | OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR 48 | OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT 49 | SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. 50 | . 51 | Except as contained in this notice, the names of Gnome, the Gnome 52 | Foundation, and Bitstream Inc., shall not be used in advertising or 53 | otherwise to promote the sale, use or other dealings in this Font 54 | Software without prior written authorization from the Gnome Foundation 55 | or Bitstream Inc., respectively. For further information, contact: 56 | fonts at gnome dot org. 57 | 58 | License: GPL-3+ 59 | This program is free software; you can redistribute it and/or modify 60 | it under the terms of the GNU General Public License as published by 61 | the Free Software Foundation; either version 3 of the License, or 62 | (at your option) any later version. 63 | . 64 | This program is distributed in the hope that it will be useful, 65 | but WITHOUT ANY WARRANTY; without even the implied warranty of 66 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 67 | GNU General Public License for more details. 68 | . 69 | Comment: 70 | . 71 | On Debian systems the 'GNU General Public License' version 3 is 72 | located in '/usr/share/common-licenses/GPL-3'. 73 | . 74 | You should have received a copy of the 'GNU General Public License' 75 | along with this program. If not, see . 76 | 77 | -------------------------------------------------------------------------------- /licenses/fonts-croscore_copyright: -------------------------------------------------------------------------------- 1 | Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ 2 | Upstream-Name: Noto 3 | Upstream-Contact: https://github.com/googlei18n/noto-fonts/issues 4 | http://groups.google.com/group/noto-font 5 | Source: https://github.com/googlei18n/noto-fonts 6 | git://github.com/googlei18n/noto-fonts 7 | 8 | Files: * 9 | Copyright: 2010,2012-2020, Google Inc. 10 | License-Grant: 11 | This Font Software is licensed under the SIL Open Font License, 12 | Version 1.1. 13 | License: OFL-1.1 14 | 15 | Files: debian/* 16 | Copyright: 17 | 2013, Vasudev Kamath 18 | 2013-2018, Jonas Smedegaard 19 | License-Grant: 20 | This program is free software; 21 | you can redistribute it and/or modify it 22 | under the terms of the GNU General Public License 23 | as published by the Free Software Foundation; 24 | either version 3, or (at your option) any later version. 25 | License: GPL-3+ 26 | 27 | Files: debian/NotoMono/NotoMono-Regular.ttf 28 | Copyright: 2007, Google Inc. 29 | License-Grant: 30 | This Font Software is licensed under the SIL Open Font License, 31 | Version 1.1. 32 | License: OFL-1.1 33 | 34 | License: Apache-2.0 35 | License-Reference: /usr/share/common-licenses/Apache-2.0 36 | 37 | License: OFL-1.1 38 | PREAMBLE 39 | . 40 | The goals of the Open Font License (OFL) are to stimulate 41 | worldwide development of collaborative font projects, 42 | to support the font creation efforts 43 | of academic and linguistic communities, 44 | and to provide a free and open framework 45 | in which fonts may be shared and improved 46 | in partnership with others. 47 | . 48 | The OFL allows the licensed fonts to be used, studied, 49 | modified and redistributed freely 50 | as long as they are not sold by themselves. 51 | The fonts, including any derivative works, 52 | can be bundled, embedded, 53 | redistributed and/or sold with any software 54 | provided that any reserved names are not used 55 | by derivative works. 56 | The fonts and derivatives, however, 57 | cannot be released under any other type of license. 58 | The requirement for fonts to remain under this license 59 | does not apply to any document 60 | created using the fonts or their derivatives. 61 | . 62 | DEFINITIONS 63 | . 64 | "Font Software" refers to the set of files 65 | released by the Copyright Holder(s) under this license 66 | and clearly marked as such. 67 | This may include source files, build scripts and documentation. 68 | . 69 | "Reserved Font Name" refers to any names specified as such 70 | after the copyright statement(s). 71 | . 72 | "Original Version" refers to the collection 73 | of Font Software components 74 | as distributed by the Copyright Holder(s). 75 | . 76 | "Modified Version" refers to any derivative 77 | made by adding to, deleting, or substituting -- 78 | in part or in whole -- 79 | any of the components of the Original Version, 80 | by changing formats 81 | or by porting the Font Software to a new environment. 82 | . 83 | "Author" refers to any designer, engineer, programmer, 84 | technical writer or other person 85 | who contributed to the Font Software. 86 | . 87 | PERMISSION & CONDITIONS 88 | . 89 | Permission is hereby granted, free of charge, 90 | to any person obtaining a copy of the Font Software, 91 | to use, study, copy, merge, embed, modify, redistribute, 92 | and sell modified and unmodified copies of the Font Software, 93 | subject to the following conditions: 94 | . 95 | 1) Neither the Font Software nor any of its individual components, 96 | in Original or Modified Versions, 97 | may be sold by itself. 98 | . 99 | 2) Original or Modified Versions of the Font Software 100 | may be bundled, redistributed and/or sold with any software, 101 | provided that each copy contains the above copyright notice 102 | and this license. 103 | These can be included either as stand-alone text files, 104 | human-readable headers or in the appropriate 105 | machine-readable metadata fields within text or binary files 106 | as long as those fields can be easily viewed by the user. 107 | . 108 | 3) No Modified Version of the Font Software may use 109 | the Reserved Font Name(s) 110 | unless explicit written permission is granted 111 | by the corresponding Copyright Holder. 112 | This restriction only applies to the primary font name 113 | as presented to the users. 114 | . 115 | 4) The name(s) of the Copyright Holder(s) 116 | or the Author(s) of the Font Software 117 | shall not be used to promote, 118 | endorse or advertise any Modified Version, 119 | except to acknowledge the contribution(s) 120 | of the Copyright Holder(s) and the Author(s) 121 | or with their explicit written permission. 122 | . 123 | 5) The Font Software, 124 | modified or unmodified, in part or in whole, 125 | must be distributed entirely under this license, 126 | and must not be distributed under any other license. 127 | The requirement for fonts to remain under this license 128 | does not apply to any document 129 | created using the Font Software. 130 | . 131 | TERMINATION 132 | . 133 | This license becomes null and void 134 | if any of the above conditions are not met. 135 | . 136 | DISCLAIMER 137 | . 138 | THE FONT SOFTWARE IS PROVIDED "AS IS", 139 | WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 140 | INCLUDING BUT NOT LIMITED TO 141 | ANY WARRANTIES OF MERCHANTABILITY, 142 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT 143 | OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. 144 | IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE 145 | FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 146 | INCLUDING ANY GENERAL, SPECIAL, INDIRECT, 147 | INCIDENTAL, OR CONSEQUENTIAL DAMAGES, 148 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 149 | ARISING FROM, OUT OF THE USE OR INABILITY TO USE 150 | THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. 151 | 152 | License: GPL-3+ 153 | License-Reference: /usr/share/common-licenses/GPL-3 154 | -------------------------------------------------------------------------------- /licenses/fonts-liberation2_copyright: -------------------------------------------------------------------------------- 1 | Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ 2 | Upstream-Name: Liberation Fonts 3 | Source: https://github.com/liberationfonts 4 | 5 | Files: * 6 | Copyright: 7 | Digitized data copyright (c) 2010 Google Corporation with Reserved Font Arimo, Tinos and Cousine. 8 | Copyright (c) 2012 Red Hat, Inc. with Reserved Font Name Liberation. 9 | License: SIL-OFL-1.1 10 | This Font Software is licensed under the SIL Open Font License, 11 | Version 1.1. 12 | . 13 | This license is copied below, and is also available with a FAQ at: 14 | http://scripts.sil.org/OFL 15 | . 16 | SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 17 | . 18 | PREAMBLE The goals of the Open Font License (OFL) are to stimulate 19 | worldwide development of collaborative font projects, to support the font 20 | creation efforts of academic and linguistic communities, and to provide 21 | a free and open framework in which fonts may be shared and improved in 22 | partnership with others. 23 | . 24 | The OFL allows the licensed fonts to be used, studied, modified and 25 | redistributed freely as long as they are not sold by themselves. 26 | The fonts, including any derivative works, can be bundled, embedded, 27 | redistributed and/or sold with any software provided that any reserved 28 | names are not used by derivative works. The fonts and derivatives, 29 | however, cannot be released under any other type of license. The 30 | requirement for fonts to remain under this license does not apply to 31 | any document created using the fonts or their derivatives. 32 | . 33 | . 34 | . 35 | DEFINITIONS 36 | "Font Software" refers to the set of files released by the Copyright 37 | Holder(s) under this license and clearly marked as such. 38 | This may include source files, build scripts and documentation. 39 | . 40 | "Reserved Font Name" refers to any names specified as such after the 41 | copyright statement(s). 42 | . 43 | "Original Version" refers to the collection of Font Software components 44 | as distributed by the Copyright Holder(s). 45 | . 46 | "Modified Version" refers to any derivative made by adding to, deleting, 47 | or substituting ? in part or in whole ? 48 | any of the components of the Original Version, by changing formats or 49 | by porting the Font Software to a new environment. 50 | . 51 | "Author" refers to any designer, engineer, programmer, technical writer 52 | or other person who contributed to the Font Software. 53 | . 54 | . 55 | PERMISSION & CONDITIONS 56 | . 57 | Permission is hereby granted, free of charge, to any person obtaining a 58 | copy of the Font Software, to use, study, copy, merge, embed, modify, 59 | redistribute, and sell modified and unmodified copies of the Font 60 | Software, subject to the following conditions: 61 | . 62 | 1) Neither the Font Software nor any of its individual components,in 63 | Original or Modified Versions, may be sold by itself. 64 | . 65 | 2) Original or Modified Versions of the Font Software may be bundled, 66 | redistributed and/or sold with any software, provided that each copy 67 | contains the above copyright notice and this license. These can be 68 | included either as stand-alone text files, human-readable headers or 69 | in the appropriate machine-readable metadata fields within text or 70 | binary files as long as those fields can be easily viewed by the user. 71 | . 72 | 3) No Modified Version of the Font Software may use the Reserved Font 73 | Name(s) unless explicit written permission is granted by the 74 | corresponding Copyright Holder. This restriction only applies to the 75 | primary font name as presented to the users. 76 | . 77 | 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font 78 | Software shall not be used to promote, endorse or advertise any 79 | Modified Version, except to acknowledge the contribution(s) of the 80 | Copyright Holder(s) and the Author(s) or with their explicit written 81 | permission. 82 | . 83 | 5) The Font Software, modified or unmodified, in part or in whole, must 84 | be distributed entirely under this license, and must not be distributed 85 | under any other license. The requirement for fonts to remain under 86 | this license does not apply to any document created using the Font 87 | Software. 88 | . 89 | . 90 | . 91 | TERMINATION 92 | This license becomes null and void if any of the above conditions are not met. 93 | . 94 | . 95 | . 96 | DISCLAIMER 97 | THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 98 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF 99 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT 100 | OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE 101 | COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 102 | INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL 103 | DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 104 | FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER 105 | DEALINGS IN THE FONT SOFTWARE. 106 | . 107 | 108 | Files: debian/* 109 | Copyright: 110 | 2008 Alan Baghumian 111 | 2008-2018 Holger Levsen 112 | 2009-2012 Christian Perrier 113 | 2011-2018 Fabian Greffrath 114 | 2018 Rene Engelhard 115 | License: GPL-2+ 116 | This package is free software; you can redistribute it and/or modify 117 | it under the terms of the GNU General Public License as published by 118 | the Free Software Foundation; either version 2 of the License, or 119 | (at your option) any later version. 120 | . 121 | This package is distributed in the hope that it will be useful, 122 | but WITHOUT ANY WARRANTY; without even the implied warranty of 123 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 124 | GNU General Public License for more details. 125 | . 126 | You should have received a copy of the GNU General Public License 127 | along with this program. If not, see 128 | . 129 | On Debian systems, the complete text of the GNU General 130 | Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". 131 | -------------------------------------------------------------------------------- /licenses/icc-profiles-free_copyright: -------------------------------------------------------------------------------- 1 | Format: http://dep.debian.net/deps/dep5 2 | Upstream-Name: ICC Profiles Free 3 | Source: http://debian.tagancha.org/icc-profiles/ 4 | 5 | Files: FOGRA*ti3 TR00*ti3 6 | Copyright: Kai-Uwe Behrmann 7 | License: Zlib 8 | 9 | Files: LCMS* compat* Gray* Cine* ITUL* sRGB.icc 10 | Copyright: Kai-Uwe Behrmann 11 | Marti Maria 12 | Photogamut 13 | Graeme Gill 14 | ColorSolutions 15 | License: Zlib 16 | 17 | License: Zlib 18 | The zlib/libpng License 19 | . 20 | This software is provided 'as-is', without any express or implied 21 | warranty. In no event will the authors be held liable for any damages 22 | arising from the use of this software. 23 | . 24 | Permission is granted to anyone to use this software for any purpose, 25 | including commercial applications, and to alter it and redistribute it 26 | freely, subject to the following restrictions: 27 | . 28 | 1. The origin of this software must not be misrepresented; you must not 29 | claim that you wrote the original software. If you use this software 30 | in a product, an acknowledgment in the product documentation would be 31 | appreciated but is not required. 32 | . 33 | 2. Altered source versions must be plainly marked as such, and must not be 34 | misrepresented as being the original software. 35 | . 36 | 3. This notice may not be removed or altered from any source 37 | distribution. 38 | . 39 | NO WARRANTY 40 | . 41 | BECAUSE THE DATA IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY 42 | FOR THE DATA, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN 43 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES 44 | PROVIDE THE DATA "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED 45 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 46 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS 47 | TO THE QUALITY AND PERFORMANCE OF THE DATA IS WITH YOU. SHOULD THE 48 | DATA PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, 49 | REPAIR OR CORRECTION. 50 | . 51 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 52 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR 53 | REDISTRIBUTE THE DATA AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, 54 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING 55 | OUT OF THE USE OR INABILITY TO USE THE DATA (INCLUDING BUT NOT LIMITED 56 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY 57 | YOU OR THIRD PARTIES OR A FAILURE OF THE DATA TO OPERATE WITH ANY OTHER 58 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE 59 | POSSIBILITY OF SUCH DAMAGES. 60 | 61 | Files: LStar-* 62 | Copyright: 2007, basICColor GmbH 63 | License: ZLIB-LSTAR 64 | The zlib/libpng License 65 | . 66 | This software is provided 'as-is', without any express or implied 67 | warranty. In no event will the authors be held liable for any damages 68 | arising from the use of this software. 69 | . 70 | Permission is granted to anyone to use this software for any purpose, 71 | including commercial applications, and to alter it and redistribute it 72 | freely, subject to the following restrictions: 73 | . 74 | 1. The origin of this software must not be misrepresented; you must not 75 | claim that you wrote the original software. If you use this software 76 | in a product, an acknowledgment in the product documentation would be 77 | appreciated but is not required. 78 | . 79 | 2. Altered source versions must be plainly marked as such, and must not be 80 | misrepresented as being the original software. 81 | . 82 | 3. This notice may not be removed or altered from any source distribution. 83 | 84 | Files: debian/* 85 | Copyright: 2005-2011 Oleksandr Moskalenko 86 | 2011 Till Kamppeter 87 | 2012 Bernhard Reiter 88 | License: GPL-2+ 89 | This package was debianized by Oleksandr Moskalenko on 90 | Thu, 4 Aug 2005 17:40:43 -0600. 91 | . 92 | This package is free software; you can redistribute it and/or modify 93 | it under the terms of the GNU General Public License as published by 94 | the Free Software Foundation; either version 2 of the License, or 95 | (at your option) any later version. 96 | . 97 | This package is distributed in the hope that it will be useful, 98 | but WITHOUT ANY WARRANTY; without even the implied warranty of 99 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 100 | GNU General Public License for more details. 101 | . 102 | You should have received a copy of the GNU General Public License 103 | along with this program. If not, see 104 | . 105 | On Debian systems, the complete text of the GNU General 106 | Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". 107 | -------------------------------------------------------------------------------- /licenses/libxml2_copyright: -------------------------------------------------------------------------------- 1 | Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0 2 | Upstream-Name: libxml2 3 | Source: ftp://xmlsoft.org/libxml2/ 4 | Files-Excluded: 5 | result 6 | test 7 | Comment: 8 | Bug about the removal of the above directories: https://bugs.debian.org/331534 9 | 10 | Files: * 11 | Copyright: 1998-2017 Daniel Veillard 12 | License: MIT-1 13 | 14 | Files: debian/* 15 | Copyright: 1998-1999 Vincent Renardias 16 | 1999-2000 Fredrik Hallenberg 17 | 2003-2011 Mike Hommey 18 | 2012-2016 Aron Xu 19 | 2017-2018 Mattia Rizzolo 20 | License: MIT-1 21 | 22 | Files: trio.c trio.h triop.h triostr.c triostr.h triodef.h trionan.c trionan.h 23 | Copyright: 1998-2001 Bjorn Reese 24 | 1998-2001 Daniel Stenberg 25 | License: ISC 26 | 27 | Files: hash.c 28 | Copyright: 2000 Bjorn Reese 29 | 2000 Daniel Veillard 30 | License: ISC 31 | 32 | Files: list.c 33 | Copyright: 2000 Gary Pennington 34 | 2000 Daniel Veillard 35 | License: ISC 36 | 37 | Files: timsort.h 38 | Copyright: 2010-2017 Christopher Swenson 39 | 2012 Vojtech Fried 40 | 2012 Google Inc. 41 | License: MIT-1 42 | 43 | License: MIT-1 44 | Permission is hereby granted, free of charge, to any person obtaining a copy 45 | of this software and associated documentation files (the "Software"), to deal 46 | in the Software without restriction, including without limitation the rights 47 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 48 | copies of the Software, and to permit persons to whom the Software is fur- 49 | nished to do so, subject to the following conditions: 50 | . 51 | The above copyright notice and this permission notice shall be included in 52 | all copies or substantial portions of the Software. 53 | . 54 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 55 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT- 56 | NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 57 | DANIEL VEILLARD BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 58 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON- 59 | NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 60 | . 61 | Except as contained in this notice, the name of Daniel Veillard shall not 62 | be used in advertising or otherwise to promote the sale, use or other deal- 63 | ings in this Software without prior written authorization from him. 64 | Comment: 65 | No, this is not Expat. 66 | 67 | License: ISC 68 | Permission to use, copy, modify, and distribute this software for any 69 | purpose with or without fee is hereby granted, provided that the above 70 | copyright notice and this permission notice appear in all copies. 71 | . 72 | THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED 73 | WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF 74 | MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND 75 | CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER. 76 | -------------------------------------------------------------------------------- /licenses/pdftotext_copyright: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 The Trustees of the Natural History Museum, London 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /licenses/pngquant_copyright: -------------------------------------------------------------------------------- 1 | Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ 2 | Upstream-Contact: Kornel Lesiński 3 | Source: https://github.com/pornel/pngquant/releases 4 | 5 | Files: * 6 | Copyright: © 1997-2002 Greg Roelofs 7 | © 1989-1991 Jef Poskanzer 8 | © 2009-2016 Kornel Lesiński 9 | License: BSD-2-clause 10 | 11 | License: BSD-2-clause 12 | Permission to use, copy, modify, and distribute this software and its 13 | documentation for any purpose and without fee is hereby granted, provided 14 | that the above copyright notice appear in all copies and that both that 15 | copyright notice and this permission notice appear in supporting 16 | documentation. This software is provided "as is" without express or 17 | implied warranty. 18 | . 19 | On Debian systems, the BSD license can be found at /usr/share/common-licenses/ 20 | 21 | Files: rwpng.* 22 | Copyright: © 1998-2002 Greg Roelofs 23 | License: BSD-3-clause 24 | This software is provided "as is," without warranty of any kind, 25 | express or implied. In no event shall the author or contributors 26 | be held liable for any damages arising in any way from the use of 27 | this software. 28 | . 29 | Permission is granted to anyone to use this software for any purpose, 30 | including commercial applications, and to alter it and redistribute 31 | it freely, subject to the following restrictions: 32 | - 33 | 1. Redistributions of source code must retain the above copyright 34 | notice, disclaimer, and this list of conditions. 35 | 2. Redistributions in binary form must reproduce the above copyright 36 | notice, disclaimer, and this list of conditions in the documenta- 37 | tion and/or other materials provided with the distribution. 38 | 3. All advertising materials mentioning features or use of this 39 | software must display the following acknowledgment: 40 | . 41 | This product includes software developed by Greg Roelofs 42 | and contributors for the book, "PNG: The Definitive Guide," 43 | published by O'Reilly and Associates. 44 | 45 | Files: debian/* 46 | Copyright: © 2005-2008 Nelson A. de Oliveira 47 | © 2013-2017 Andreas Tille 48 | License: BSD-2-clause 49 | -------------------------------------------------------------------------------- /licenses/python3_copyright: -------------------------------------------------------------------------------- 1 | This is the Debian GNU/Linux prepackaged version of the Python programming 2 | language. Python was written by Guido van Rossum and others. 3 | 4 | This package was put together by Klee Dienes from 5 | sources from ftp.python.org:/pub/python, based on the Debianization by 6 | the previous maintainers Bernd S. Brentrup and 7 | Bruce Perens. 8 | 9 | Current maintainer is Matthias Klose until the final 10 | 2.3 version is released. 11 | 12 | 13 | Copyright notice (as found in LICENSE in the original source). 14 | -------------------------------------------------------------- 15 | 16 | A. HISTORY OF THE SOFTWARE 17 | ========================== 18 | 19 | Python was created in the early 1990s by Guido van Rossum at Stichting 20 | Mathematisch Centrum (CWI, see http://www.cwi.nl) in the Netherlands 21 | as a successor of a language called ABC. Guido remains Python's 22 | principal author, although it includes many contributions from others. 23 | 24 | In 1995, Guido continued his work on Python at the Corporation for 25 | National Research Initiatives (CNRI, see http://www.cnri.reston.va.us) 26 | in Reston, Virginia where he released several versions of the 27 | software. 28 | 29 | In May 2000, Guido and the Python core development team moved to 30 | BeOpen.com to form the BeOpen PythonLabs team. In October of the same 31 | year, the PythonLabs team moved to Digital Creations (now Zope 32 | Corporation, see http://www.zope.com). In 2001, the Python Software 33 | Foundation (PSF, see http://www.python.org/psf/) was formed, a 34 | non-profit organization created specifically to own Python-related 35 | Intellectual Property. Zope Corporation is a sponsoring member of 36 | the PSF. 37 | 38 | All Python releases are Open Source (see http://www.opensource.org for 39 | the Open Source Definition). Historically, most, but not all, Python 40 | releases have also been GPL-compatible; the table below summarizes 41 | the various releases. 42 | 43 | Release Derived Year Owner GPL- 44 | from compatible? (1) 45 | 46 | 0.9.0 thru 1.2 1991-1995 CWI yes 47 | 1.3 thru 1.5.2 1.2 1995-1999 CNRI yes 48 | 1.6 1.5.2 2000 CNRI no 49 | 2.0 1.6 2000 BeOpen.com no 50 | 1.6.1 1.6 2001 CNRI yes (2) 51 | 2.1 2.0+1.6.1 2001 PSF no 52 | 2.0.1 2.0+1.6.1 2001 PSF yes 53 | 2.1.1 2.1+2.0.1 2001 PSF yes 54 | 2.2 2.1.1 2001 PSF yes 55 | 2.1.2 2.1.1 2002 PSF yes 56 | 2.1.3 2.1.2 2002 PSF yes 57 | 2.2.1 2.2 2002 PSF yes 58 | 2.2.2 2.2.1 2002 PSF yes 59 | 2.2.3 2.2.2 2003 PSF yes 60 | 2.3 2.2.2 2002-2003 PSF yes 61 | 2.3.1 2.3 2002-2003 PSF yes 62 | 2.3.2 2.3.1 2002-2003 PSF yes 63 | 2.3.3 2.3.2 2002-2003 PSF yes 64 | 2.3.4 2.3.3 2004 PSF yes 65 | 2.3.5 2.3.4 2005 PSF yes 66 | 2.4 2.3 2004 PSF yes 67 | 2.4.1 2.4 2005 PSF yes 68 | 2.4.2 2.4.1 2005 PSF yes 69 | 2.4.3 2.4.2 2006 PSF yes 70 | 2.4.4 2.4.3 2006 PSF yes 71 | 2.5 2.4 2006 PSF yes 72 | 2.5.1 2.5 2007 PSF yes 73 | 2.5.2 2.5.1 2008 PSF yes 74 | 2.5.3 2.5.2 2008 PSF yes 75 | 2.6 2.5 2008 PSF yes 76 | 2.6.1 2.6 2008 PSF yes 77 | 2.6.2 2.6.1 2009 PSF yes 78 | 2.6.3 2.6.2 2009 PSF yes 79 | 2.6.4 2.6.3 2009 PSF yes 80 | 3.0 2.6 2008 PSF yes 81 | 3.0.1 3.0 2009 PSF yes 82 | 3.1 3.0.1 2009 PSF yes 83 | 3.1.1 3.1 2009 PSF yes 84 | 85 | Footnotes: 86 | 87 | (1) GPL-compatible doesn't mean that we're distributing Python under 88 | the GPL. All Python licenses, unlike the GPL, let you distribute 89 | a modified version without making your changes open source. The 90 | GPL-compatible licenses make it possible to combine Python with 91 | other software that is released under the GPL; the others don't. 92 | 93 | (2) According to Richard Stallman, 1.6.1 is not GPL-compatible, 94 | because its license has a choice of law clause. According to 95 | CNRI, however, Stallman's lawyer has told CNRI's lawyer that 1.6.1 96 | is "not incompatible" with the GPL. 97 | 98 | Thanks to the many outside volunteers who have worked under Guido's 99 | direction to make these releases possible. 100 | 101 | 102 | B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON 103 | =============================================================== 104 | 105 | PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 106 | -------------------------------------------- 107 | 108 | 1. This LICENSE AGREEMENT is between the Python Software Foundation 109 | ("PSF"), and the Individual or Organization ("Licensee") accessing and 110 | otherwise using this software ("Python") in source or binary form and 111 | its associated documentation. 112 | 113 | 2. Subject to the terms and conditions of this License Agreement, PSF hereby 114 | grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, 115 | analyze, test, perform and/or display publicly, prepare derivative works, 116 | distribute, and otherwise use Python alone or in any derivative version, 117 | provided, however, that PSF's License Agreement and PSF's notice of copyright, 118 | i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 119 | Python Software Foundation; All Rights Reserved" are retained in Python alone or 120 | in any derivative version prepared by Licensee. 121 | 122 | 3. In the event Licensee prepares a derivative work that is based on 123 | or incorporates Python or any part thereof, and wants to make 124 | the derivative work available to others as provided herein, then 125 | Licensee hereby agrees to include in any such work a brief summary of 126 | the changes made to Python. 127 | 128 | 4. PSF is making Python available to Licensee on an "AS IS" 129 | basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR 130 | IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND 131 | DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS 132 | FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT 133 | INFRINGE ANY THIRD PARTY RIGHTS. 134 | 135 | 5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON 136 | FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS 137 | A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, 138 | OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. 139 | 140 | 6. This License Agreement will automatically terminate upon a material 141 | breach of its terms and conditions. 142 | 143 | 7. Nothing in this License Agreement shall be deemed to create any 144 | relationship of agency, partnership, or joint venture between PSF and 145 | Licensee. This License Agreement does not grant permission to use PSF 146 | trademarks or trade name in a trademark sense to endorse or promote 147 | products or services of Licensee, or any third party. 148 | 149 | 8. By copying, installing or otherwise using Python, Licensee 150 | agrees to be bound by the terms and conditions of this License 151 | Agreement. 152 | 153 | 154 | BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0 155 | ------------------------------------------- 156 | 157 | BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1 158 | 159 | 1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an 160 | office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the 161 | Individual or Organization ("Licensee") accessing and otherwise using 162 | this software in source or binary form and its associated 163 | documentation ("the Software"). 164 | 165 | 2. Subject to the terms and conditions of this BeOpen Python License 166 | Agreement, BeOpen hereby grants Licensee a non-exclusive, 167 | royalty-free, world-wide license to reproduce, analyze, test, perform 168 | and/or display publicly, prepare derivative works, distribute, and 169 | otherwise use the Software alone or in any derivative version, 170 | provided, however, that the BeOpen Python License is retained in the 171 | Software, alone or in any derivative version prepared by Licensee. 172 | 173 | 3. BeOpen is making the Software available to Licensee on an "AS IS" 174 | basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR 175 | IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND 176 | DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS 177 | FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT 178 | INFRINGE ANY THIRD PARTY RIGHTS. 179 | 180 | 4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE 181 | SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS 182 | AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY 183 | DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. 184 | 185 | 5. This License Agreement will automatically terminate upon a material 186 | breach of its terms and conditions. 187 | 188 | 6. This License Agreement shall be governed by and interpreted in all 189 | respects by the law of the State of California, excluding conflict of 190 | law provisions. Nothing in this License Agreement shall be deemed to 191 | create any relationship of agency, partnership, or joint venture 192 | between BeOpen and Licensee. This License Agreement does not grant 193 | permission to use BeOpen trademarks or trade names in a trademark 194 | sense to endorse or promote products or services of Licensee, or any 195 | third party. As an exception, the "BeOpen Python" logos available at 196 | http://www.pythonlabs.com/logos.html may be used according to the 197 | permissions granted on that web page. 198 | 199 | 7. By copying, installing or otherwise using the software, Licensee 200 | agrees to be bound by the terms and conditions of this License 201 | Agreement. 202 | 203 | 204 | CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1 205 | --------------------------------------- 206 | 207 | 1. This LICENSE AGREEMENT is between the Corporation for National 208 | Research Initiatives, having an office at 1895 Preston White Drive, 209 | Reston, VA 20191 ("CNRI"), and the Individual or Organization 210 | ("Licensee") accessing and otherwise using Python 1.6.1 software in 211 | source or binary form and its associated documentation. 212 | 213 | 2. Subject to the terms and conditions of this License Agreement, CNRI 214 | hereby grants Licensee a nonexclusive, royalty-free, world-wide 215 | license to reproduce, analyze, test, perform and/or display publicly, 216 | prepare derivative works, distribute, and otherwise use Python 1.6.1 217 | alone or in any derivative version, provided, however, that CNRI's 218 | License Agreement and CNRI's notice of copyright, i.e., "Copyright (c) 219 | 1995-2001 Corporation for National Research Initiatives; All Rights 220 | Reserved" are retained in Python 1.6.1 alone or in any derivative 221 | version prepared by Licensee. Alternately, in lieu of CNRI's License 222 | Agreement, Licensee may substitute the following text (omitting the 223 | quotes): "Python 1.6.1 is made available subject to the terms and 224 | conditions in CNRI's License Agreement. This Agreement together with 225 | Python 1.6.1 may be located on the Internet using the following 226 | unique, persistent identifier (known as a handle): 1895.22/1013. This 227 | Agreement may also be obtained from a proxy server on the Internet 228 | using the following URL: http://hdl.handle.net/1895.22/1013". 229 | 230 | 3. In the event Licensee prepares a derivative work that is based on 231 | or incorporates Python 1.6.1 or any part thereof, and wants to make 232 | the derivative work available to others as provided herein, then 233 | Licensee hereby agrees to include in any such work a brief summary of 234 | the changes made to Python 1.6.1. 235 | 236 | 4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS" 237 | basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR 238 | IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND 239 | DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS 240 | FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT 241 | INFRINGE ANY THIRD PARTY RIGHTS. 242 | 243 | 5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON 244 | 1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS 245 | A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1, 246 | OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. 247 | 248 | 6. This License Agreement will automatically terminate upon a material 249 | breach of its terms and conditions. 250 | 251 | 7. This License Agreement shall be governed by the federal 252 | intellectual property law of the United States, including without 253 | limitation the federal copyright law, and, to the extent such 254 | U.S. federal law does not apply, by the law of the Commonwealth of 255 | Virginia, excluding Virginia's conflict of law provisions. 256 | Notwithstanding the foregoing, with regard to derivative works based 257 | on Python 1.6.1 that incorporate non-separable material that was 258 | previously distributed under the GNU General Public License (GPL), the 259 | law of the Commonwealth of Virginia shall govern this License 260 | Agreement only as to issues arising under or with respect to 261 | Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this 262 | License Agreement shall be deemed to create any relationship of 263 | agency, partnership, or joint venture between CNRI and Licensee. This 264 | License Agreement does not grant permission to use CNRI trademarks or 265 | trade name in a trademark sense to endorse or promote products or 266 | services of Licensee, or any third party. 267 | 268 | 8. By clicking on the "ACCEPT" button where indicated, or by copying, 269 | installing or otherwise using Python 1.6.1, Licensee agrees to be 270 | bound by the terms and conditions of this License Agreement. 271 | 272 | ACCEPT 273 | 274 | 275 | CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2 276 | -------------------------------------------------- 277 | 278 | Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, 279 | The Netherlands. All rights reserved. 280 | 281 | Permission to use, copy, modify, and distribute this software and its 282 | documentation for any purpose and without fee is hereby granted, 283 | provided that the above copyright notice appear in all copies and that 284 | both that copyright notice and this permission notice appear in 285 | supporting documentation, and that the name of Stichting Mathematisch 286 | Centrum or CWI not be used in advertising or publicity pertaining to 287 | distribution of the software without specific, written prior 288 | permission. 289 | 290 | STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO 291 | THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND 292 | FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE 293 | FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 294 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 295 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT 296 | OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 297 | 298 | 299 | py3compile, py3clean and debpython module: 300 | ========================================== 301 | Copyright © 2010-2013 Piotr Ożarowski 302 | 303 | Permission is hereby granted, free of charge, to any person obtaining a copy 304 | of this software and associated documentation files (the "Software"), to deal 305 | in the Software without restriction, including without limitation the rights 306 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 307 | copies of the Software, and to permit persons to whom the Software is 308 | furnished to do so, subject to the following conditions: 309 | 310 | The above copyright notice and this permission notice shall be included in 311 | all copies or substantial portions of the Software. 312 | 313 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 314 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 315 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 316 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 317 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 318 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 319 | THE SOFTWARE. 320 | -------------------------------------------------------------------------------- /licenses/pyzbar_copyright: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 The Trustees of the Natural History Museum, London 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /licenses/qpdf_copyright: -------------------------------------------------------------------------------- 1 | This package was debianized by Jay Berkenbilt on 2 | April 26, 2008. 3 | 4 | It can be downloaded from https://github.com/qpdf/qpdf/releases 5 | 6 | Upstream Maintainers: 7 | Jay Berkenbilt 8 | 9 | For these files, which are no longer built in the debian package: 10 | 11 | libqpdf/sph/sph_sha2.h 12 | libqpdf/sph/sph_types.h 13 | libqpdf/sph/md_helper.c 14 | libqpdf/sha2big.c 15 | libqpdf/sha2.c 16 | 17 | the following copyright applies: 18 | 19 | ---------------------------------------------------------------------- 20 | Copyright (c) 2007-2010 Projet RNRT SAPHIR 21 | 22 | Permission is hereby granted, free of charge, to any person obtaining 23 | a copy of this software and associated documentation files (the 24 | "Software"), to deal in the Software without restriction, including 25 | without limitation the rights to use, copy, modify, merge, publish, 26 | distribute, sublicense, and/or sell copies of the Software, and to 27 | permit persons to whom the Software is furnished to do so, subject to 28 | the following conditions: 29 | 30 | The above copyright notice and this permission notice shall be 31 | included in all copies or substantial portions of the Software. 32 | 33 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 34 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 35 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 36 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 37 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 38 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 39 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 40 | ---------------------------------------------------------------------- 41 | 42 | For the file libqpdf/MD5_native.cc, which is no longer built in the 43 | debian package, the following copyright applies: 44 | 45 | ---------------------------------------------------------------------- 46 | Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All 47 | rights reserved. 48 | 49 | License to copy and use this software is granted provided that it 50 | is identified as the "RSA Data Security, Inc. MD5 Message-Digest 51 | Algorithm" in all material mentioning or referencing this software 52 | or this function. 53 | 54 | License is also granted to make and use derivative works provided 55 | that such works are identified as "derived from the RSA Data 56 | Security, Inc. MD5 Message-Digest Algorithm" in all material 57 | mentioning or referencing the derived work. 58 | 59 | RSA Data Security, Inc. makes no representations concerning either 60 | the merchantability of this software or the suitability of this 61 | software for any particular purpose. It is provided "as is" 62 | without express or implied warranty of any kind. 63 | 64 | These notices must be retained in any copies of any part of this 65 | documentation and/or software. 66 | ---------------------------------------------------------------------- 67 | 68 | QPDF embeds a copy of qtest (http://qtest.qbilt.org), which has the 69 | same author as qpdf. qtest has the following copyright: 70 | 71 | Copyright 1993-2007, Jay Berkenbilt 72 | 73 | QTest is distributed under the terms of version 2.0 of the Artistic 74 | license, which may be found at 75 | https://opensource.org/licenses/Artistic-2.0 and which also appears 76 | below. 77 | 78 | ---------------------------------------------------------------------- 79 | 80 | For everything else, the following copyright applies: 81 | 82 | Copyright (C) 2005-2017 Jay Berkenbilt 83 | 84 | Licensed under the Apache License, Version 2.0 (the "License"); 85 | you may not use this file except in compliance with the License. 86 | You may obtain a copy of the License at 87 | 88 | http://www.apache.org/licenses/LICENSE-2.0 89 | 90 | Unless required by applicable law or agreed to in writing, software 91 | distributed under the License is distributed on an "AS IS" BASIS, 92 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 93 | See the License for the specific language governing permissions and 94 | limitations under the License. 95 | 96 | Versions of qpdf prior to version 7 were released under the terms of 97 | version 2.0 of the Artistic License. At your option, you may continue 98 | to consider qpdf to be licensed under those terms. The text of the 99 | Artistic License version 2.0 is included below. 100 | 101 | For the text of the Apache license version 2.0, see 102 | /usr/share/common-licenses/Apache-2.0 103 | 104 | ---------------------------------------------------------------------- 105 | 106 | Artistic License 2.0 107 | 108 | Copyright (c) 2000-2006, The Perl Foundation. 109 | 110 | Everyone is permitted to copy and distribute verbatim copies of this 111 | license document, but changing it is not allowed. 112 | 113 | Preamble 114 | 115 | This license establishes the terms under which a given free software 116 | Package may be copied, modified, distributed, and/or 117 | redistributed. The intent is that the Copyright Holder maintains some 118 | artistic control over the development of that Package while still 119 | keeping the Package available as open source and free software. 120 | 121 | You are always permitted to make arrangements wholly outside of this 122 | license directly with the Copyright Holder of a given Package. If the 123 | terms of this license do not permit the full use that you propose to 124 | make of the Package, you should contact the Copyright Holder and seek 125 | a different licensing arrangement. 126 | 127 | Definitions 128 | 129 | "Copyright Holder" means the individual(s) or organization(s) named 130 | in the copyright notice for the entire Package. 131 | 132 | "Contributor" means any party that has contributed code or other 133 | material to the Package, in accordance with the Copyright Holder's 134 | procedures. 135 | 136 | "You" and "your" means any person who would like to copy, 137 | distribute, or modify the Package. 138 | 139 | "Package" means the collection of files distributed by the 140 | Copyright Holder, and derivatives of that collection and/or of 141 | those files. A given Package may consist of either the Standard 142 | Version, or a Modified Version. 143 | 144 | "Distribute" means providing a copy of the Package or making it 145 | accessible to anyone else, or in the case of a company or 146 | organization, to others outside of your company or organization. 147 | 148 | "Distributor Fee" means any fee that you charge for Distributing 149 | this Package or providing support for this Package to another 150 | party. It does not mean licensing fees. 151 | 152 | "Standard Version" refers to the Package if it has not been 153 | modified, or has been modified only in ways explicitly requested by 154 | the Copyright Holder. 155 | 156 | "Modified Version" means the Package, if it has been changed, and 157 | such changes were not explicitly requested by the Copyright Holder. 158 | 159 | "Original License" means this Artistic License as Distributed with 160 | the Standard Version of the Package, in its current version or as 161 | it may be modified by The Perl Foundation in the future. 162 | 163 | "Source" form means the source code, documentation source, and 164 | configuration files for the Package. 165 | 166 | "Compiled" form means the compiled bytecode, object code, binary, 167 | or any other form resulting from mechanical transformation or 168 | translation of the Source form. 169 | 170 | Permission for Use and Modification Without Distribution 171 | 172 | (1) You are permitted to use the Standard Version and create and use 173 | Modified Versions for any purpose without restriction, provided that 174 | you do not Distribute the Modified Version. 175 | 176 | Permissions for Redistribution of the Standard Version 177 | 178 | (2) You may Distribute verbatim copies of the Source form of the 179 | Standard Version of this Package in any medium without restriction, 180 | either gratis or for a Distributor Fee, provided that you duplicate 181 | all of the original copyright notices and associated disclaimers. At 182 | your discretion, such verbatim copies may or may not include a 183 | Compiled form of the Package. 184 | 185 | (3) You may apply any bug fixes, portability changes, and other 186 | modifications made available from the Copyright Holder. The resulting 187 | Package will still be considered the Standard Version, and as such 188 | will be subject to the Original License. 189 | 190 | Distribution of Modified Versions of the Package as Source 191 | 192 | (4) You may Distribute your Modified Version as Source (either gratis 193 | or for a Distributor Fee, and with or without a Compiled form of the 194 | Modified Version) provided that you clearly document how it differs 195 | from the Standard Version, including, but not limited to, documenting 196 | any non-standard features, executables, or modules, and provided that 197 | you do at least ONE of the following: 198 | 199 | (a) make the Modified Version available to the Copyright Holder of 200 | the Standard Version, under the Original License, so that the 201 | Copyright Holder may include your modifications in the Standard 202 | Version. 203 | 204 | (b) ensure that installation of your Modified Version does not 205 | prevent the user installing or running the Standard Version. In 206 | addition, the Modified Version must bear a name that is different 207 | from the name of the Standard Version. 208 | 209 | (c) allow anyone who receives a copy of the Modified Version to 210 | make the Source form of the Modified Version available to others 211 | under 212 | 213 | (i) the Original License or 214 | 215 | (ii) a license that permits the licensee to freely copy, modify 216 | and redistribute the Modified Version using the same licensing 217 | terms that apply to the copy that the licensee received, and 218 | requires that the Source form of the Modified Version, and of 219 | any works derived from it, be made freely available in that 220 | license fees are prohibited but Distributor Fees are allowed. 221 | Distribution of Compiled Forms of the Standard Version or 222 | Modified Versions without the Source 223 | 224 | (5) You may Distribute Compiled forms of the Standard Version without 225 | the Source, provided that you include complete instructions on how to 226 | get the Source of the Standard Version. Such instructions must be 227 | valid at the time of your distribution. If these instructions, at any 228 | time while you are carrying out such distribution, become invalid, you 229 | must provide new instructions on demand or cease further 230 | distribution. If you provide valid instructions or cease distribution 231 | within thirty days after you become aware that the instructions are 232 | invalid, then you do not forfeit any of your rights under this 233 | license. 234 | 235 | (6) You may Distribute a Modified Version in Compiled form without the 236 | Source, provided that you comply with Section 4 with respect to the 237 | Source of the Modified Version. 238 | 239 | Aggregating or Linking the Package 240 | 241 | (7) You may aggregate the Package (either the Standard Version or 242 | Modified Version) with other packages and Distribute the resulting 243 | aggregation provided that you do not charge a licensing fee for the 244 | Package. Distributor Fees are permitted, and licensing fees for other 245 | components in the aggregation are permitted. The terms of this license 246 | apply to the use and Distribution of the Standard or Modified Versions 247 | as included in the aggregation. 248 | 249 | (8) You are permitted to link Modified and Standard Versions with 250 | other works, to embed the Package in a larger work of your own, or to 251 | build stand-alone binary or bytecode versions of applications that 252 | include the Package, and Distribute the result without restriction, 253 | provided the result does not expose a direct interface to the Package. 254 | 255 | Items That are Not Considered Part of a Modified Version 256 | 257 | (9) Works (including, but not limited to, modules and scripts) that 258 | merely extend or make use of the Package, do not, by themselves, cause 259 | the Package to be a Modified Version. In addition, such works are not 260 | considered parts of the Package itself, and are not subject to the 261 | terms of this license. 262 | 263 | General Provisions 264 | 265 | (10) Any use, modification, and distribution of the Standard or 266 | Modified Versions is governed by this Artistic License. By using, 267 | modifying or distributing the Package, you accept this license. Do not 268 | use, modify, or distribute the Package, if you do not accept this 269 | license. 270 | 271 | (11) If your Modified Version has been derived from a Modified Version 272 | made by someone other than you, you are nevertheless required to 273 | ensure that your Modified Version complies with the requirements of 274 | this license. 275 | 276 | (12) This license does not grant you the right to use any trademark, 277 | service mark, tradename, or logo of the Copyright Holder. 278 | 279 | (13) This license includes the non-exclusive, worldwide, 280 | free-of-charge patent license to make, have made, use, offer to sell, 281 | sell, import and otherwise transfer the Package with respect to any 282 | patent claims licensable by the Copyright Holder that are necessarily 283 | infringed by the Package. If you institute patent litigation 284 | (including a cross-claim or counterclaim) against any party alleging 285 | that the Package constitutes direct or contributory patent 286 | infringement, then this Artistic License to you shall terminate on the 287 | date that such litigation is filed. 288 | 289 | (14) Disclaimer of Warranty: THE PACKAGE IS PROVIDED BY THE COPYRIGHT 290 | HOLDER AND CONTRIBUTORS "AS IS' AND WITHOUT ANY EXPRESS OR IMPLIED 291 | WARRANTIES. THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 292 | PARTICULAR PURPOSE, OR NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT 293 | PERMITTED BY YOUR LOCAL LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT 294 | HOLDER OR CONTRIBUTOR WILL BE LIABLE FOR ANY DIRECT, INDIRECT, 295 | INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING IN ANY WAY OUT OF THE USE 296 | OF THE PACKAGE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 297 | -------------------------------------------------------------------------------- /licenses/tesseract_copyright: -------------------------------------------------------------------------------- 1 | Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ 2 | Upstream-Name: tesseract-ocr 3 | Upstream-Contact: Ray Smith 4 | Source: https://github.com/tesseract-ocr/ 5 | 6 | Files: * 7 | Copyright: 1988-1995 Hewlett Packard Company. 8 | 2006-2018 Google Inc. 9 | License: Apache-2.0 10 | 11 | Files: debian/* 12 | Copyright: 2007-2009 Jeffrey Ratcliffe 13 | 2010-2018 Jeff Breidenbach 14 | 2010-2018 Alexander Pozdnyakov 15 | License: Apache-2.0 16 | 17 | License: Apache-2.0 18 | Licensed under the Apache License, Version 2.0 (the "License"); 19 | you may not use this file except in compliance with the License. 20 | You may obtain a copy of the license at 21 | . 22 | http://www.apache.org/licenses/LICENSE-2.0 23 | . 24 | Unless required by applicable law or agreed to in writing, software 25 | distributed under the License is distributed on an "AS IS" BASIS, 26 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 27 | See the License for the specific language governing permissions and 28 | limitations under the License. 29 | . 30 | On Debian systems, the complete text of the Apache 2.0 license can be 31 | found in the file 32 | `/usr/share/common-licenses/Apache-2.0`. 33 | -------------------------------------------------------------------------------- /licenses/tesseract_languages: -------------------------------------------------------------------------------- 1 | Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ 2 | Upstream-Name: tessdata_fast 3 | Upstream-Contact: Ray Smith 4 | Source: https://github.com/tesseract-ocr/tessdata_fast/ 5 | 6 | Files: * 7 | Copyright: 1988-1995 Hewlett Packard Company. 8 | 2006-2018 Google Inc. 9 | License: Apache-2.0 10 | 11 | Files: debian/* 12 | Copyright: 2007-2009 Jeffrey Ratcliffe 13 | 2017-2018 Jeff Breidenbach 14 | 2017-2018 Alexander Pozdnyakov 15 | License: Apache-2.0 16 | 17 | License: Apache-2.0 18 | Licensed under the Apache License, Version 2.0 (the "License"); 19 | you may not use this file except in compliance with the License. 20 | You may obtain a copy of the license at 21 | . 22 | http://www.apache.org/licenses/LICENSE-2.0 23 | . 24 | Unless required by applicable law or agreed to in writing, software 25 | distributed under the License is distributed on an "AS IS" BASIS, 26 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 27 | See the License for the specific language governing permissions and 28 | limitations under the License. 29 | . 30 | On Debian systems, the complete text of the Apache 2.0 license can be 31 | found in the file 32 | `/usr/share/common-licenses/Apache-2.0`. 33 | -------------------------------------------------------------------------------- /licenses/zbar-library_copyright: -------------------------------------------------------------------------------- 1 | GNU LESSER GENERAL PUBLIC LICENSE 2 | 3 | Version 2.1, February 1999 4 | 5 | Copyright (C) 1991, 1999 Free Software Foundation, Inc. 6 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 7 | Everyone is permitted to copy and distribute verbatim copies 8 | of this license document, but changing it is not allowed. 9 | 10 | [This is the first released version of the Lesser GPL. It also counts 11 | as the successor of the GNU Library Public License, version 2, hence 12 | the version number 2.1.] 13 | 14 | Preamble 15 | 16 | The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. 17 | 18 | This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. 19 | 20 | When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. 21 | 22 | To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. 23 | 24 | For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. 25 | 26 | We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. 27 | 28 | To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. 29 | 30 | Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. 31 | 32 | Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. 33 | 34 | When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. 35 | 36 | We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. 37 | 38 | For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. 39 | 40 | In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. 41 | 42 | Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. 43 | 44 | The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. 45 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 46 | 47 | 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". 48 | 49 | A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. 50 | 51 | The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) 52 | 53 | "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. 54 | 55 | Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 56 | 57 | 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. 58 | 59 | You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 60 | 61 | 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: 62 | 63 | a) The modified work must itself be a software library. 64 | b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. 65 | c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. 66 | d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. 67 | 68 | (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) 69 | 70 | These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. 71 | 72 | Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. 73 | 74 | In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 75 | 76 | 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. 77 | 78 | Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. 79 | 80 | This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 81 | 82 | 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. 83 | 84 | If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 85 | 86 | 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. 87 | 88 | However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. 89 | 90 | When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. 91 | 92 | If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) 93 | 94 | Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 95 | 96 | 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. 97 | 98 | You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: 99 | 100 | a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) 101 | b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. 102 | c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. 103 | d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. 104 | e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. 105 | 106 | For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. 107 | 108 | It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 109 | 110 | 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: 111 | 112 | a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. 113 | b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 114 | 115 | 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 116 | 117 | 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 118 | 119 | 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 120 | 121 | 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. 122 | 123 | If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. 124 | 125 | It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. 126 | 127 | This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 128 | 129 | 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 130 | 131 | 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. 132 | 133 | Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 134 | 135 | 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. 136 | 137 | NO WARRANTY 138 | 139 | 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 140 | 141 | 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 142 | -------------------------------------------------------------------------------- /licenses/zlib1g_copyright: -------------------------------------------------------------------------------- 1 | Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ 2 | Upstream-Name: zlib 3 | Upstream-Contact: zlib@gzip.org 4 | Source: http://zlib.net/ 5 | Comment: This is the pre-packaged Debian Linux version of the zlib compression 6 | library. It was packaged by Michael Alan Dorman 7 | from sources originally retrieved from ftp.uu.net in the directory 8 | /pub/archiving/zip/zlib as the file zlib-1.0.4.tar.gz. 9 | . 10 | The deflate format used by zlib was defined by Phil Katz. The deflate 11 | and zlib specifications were written by Peter Deutsch. Thanks to all the 12 | people who reported problems and suggested various improvements in zlib; 13 | they are too numerous to cite here. 14 | Files-Excluded: 15 | contrib/ada 16 | contrib/amd64 17 | contrib/asm686 18 | contrib/blast 19 | contrib/delphi 20 | contrib/dotzlib 21 | contrib/gcc_gvmat64 22 | contrib/infback9 23 | contrib/inflate86 24 | contrib/iostream 25 | contrib/iostream2 26 | contrib/iostream3 27 | contrib/masmx64 28 | contrib/masmx86 29 | contrib/pascal 30 | contrib/puff 31 | contrib/testzlib 32 | contrib/untgz 33 | contrib/vstudio 34 | doc/rfc1950.txt 35 | doc/rfc1951.txt 36 | doc/rfc1952.txt 37 | 38 | Files: * 39 | Copyright: 1995-2013 Jean-loup Gailly and Mark Adler 40 | License: Zlib 41 | 42 | Files: amiga/Makefile.pup 43 | Copyright: 1998 by Andreas R. Kleinert 44 | License: Zlib 45 | 46 | Files: contrib/minizip/* 47 | Copyright: 1998-2010 Gilles Vollant 48 | 2007-2008 Even Rouault 49 | 2009-2010 Mathias Svensson 50 | License: Zlib 51 | 52 | Files: debian/* 53 | Copyright: 2000-2017 Mark Brown 54 | License: Zlib 55 | 56 | License: Zlib 57 | This software is provided 'as-is', without any express or implied 58 | warranty. In no event will the authors be held liable for any damages 59 | arising from the use of this software. 60 | . 61 | Permission is granted to anyone to use this software for any purpose, 62 | including commercial applications, and to alter it and redistribute it 63 | freely, subject to the following restrictions: 64 | . 65 | 1. The origin of this software must not be misrepresented; you must not 66 | claim that you wrote the original software. If you use this software 67 | in a product, an acknowledgment in the product documentation would be 68 | appreciated but is not required. 69 | 2. Altered source versions must be plainly marked as such, and must not be 70 | misrepresented as being the original software. 71 | 3. This notice may not be removed or altered from any source distribution. 72 | . 73 | Jean-loup Gailly Mark Adler 74 | jloup@gzip.org madler@alumni.caltech.edu 75 | . 76 | If you use the zlib library in a product, we would appreciate *not* receiving 77 | lengthy legal documents to sign. The sources are provided for free but without 78 | warranty of any kind. The library has been entirely written by Jean-loup 79 | Gailly and Mark Adler; it does not include third-party code. 80 | . 81 | If you redistribute modified sources, we would appreciate that you include in 82 | the file ChangeLog history information documenting your changes. Please read 83 | the FAQ for more information on the distribution of modified source versions. 84 | -------------------------------------------------------------------------------- /screenshots/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digidigital/OCRthyPDF-Essentials/92959b432fb0abb2a5b7b08f843e4335cf9f0d40/screenshots/1.png -------------------------------------------------------------------------------- /screenshots/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digidigital/OCRthyPDF-Essentials/92959b432fb0abb2a5b7b08f843e4335cf9f0d40/screenshots/2.png -------------------------------------------------------------------------------- /screenshots/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digidigital/OCRthyPDF-Essentials/92959b432fb0abb2a5b7b08f843e4335cf9f0d40/screenshots/3.png -------------------------------------------------------------------------------- /screenshots/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digidigital/OCRthyPDF-Essentials/92959b432fb0abb2a5b7b08f843e4335cf9f0d40/screenshots/4.png -------------------------------------------------------------------------------- /screenshots/Readme.md: -------------------------------------------------------------------------------- 1 | Some screenshots... 2 | -------------------------------------------------------------------------------- /snapcraft.yaml: -------------------------------------------------------------------------------- 1 | name: ocrthypdf 2 | title: OCRthyPDF Essentials 3 | base: core20 # the base snap is the execution environment for this snap 4 | adopt-info: ocrthypdf 5 | summary: Make your PDF files text-searchable (A GUI for OCRmyPDF) 6 | description: | 7 | This is a basic user interface for the command line tool OCRmyPDF. 8 | It's main purpose is to provide users that are not used to command 9 | line tools easy access to OCRmyPDF's basic features. 10 | You can use it to make PDF files that contain images with text 11 | (e. g. after scanning) searchable by adding an invisible text layer. 12 | If you like the results created with OCRthyPDF but need more flexibility 13 | I suggest you give OCRmyPDF a try on the command line. 14 | license: AGPL-3.0 15 | icon: gui/ocrthypdf.svg 16 | compression: lzo 17 | grade: stable # 'stable' 'devel' 18 | confinement: strict # 'strict' 'devmode' 19 | architectures: [amd64] 20 | package-repositories: 21 | - type: apt 22 | ppa: alex-p/tesseract-ocr5 23 | - type: apt 24 | ppa: alex-p/jbig2enc 25 | 26 | environment: 27 | PYTHONPATH: $SNAP/usr/bin/python3.9 28 | TESSDATA_PREFIX: $SNAP/usr/share/tesseract-ocr/tessdata 29 | GS_LIB: $SNAP/usr/share/ghostscript/Init 30 | GS_FONTPATH: $SNAP/usr/share/ghostscript/Font 31 | GS_OPTIONS: -sGenericResourceDir=$SNAP/usr/share/ghostscript/ -sICCProfilesDir=$SNAP/usr/share/color/icc/ghostscript/ 32 | SNAPCRAFT_PRELOAD_REDIRECT_ONLY_SHM: 1 33 | 34 | apps: 35 | ocrthypdf: 36 | command: usr/bin/snapcraft-preload $SNAP/bin/python3.9 $SNAP/code/OCRthyPDF.py 37 | command-chain: [bin/debian-multiarch-triplet-provider-launch, bin/tcltk-launch] 38 | desktop: $SNAPCRAFT_PROJECT_DIR/gui/ocrthypdf.desktop 39 | extensions: [gnome-3-38] 40 | plugs: 41 | - home 42 | - removable-media 43 | - unity7 44 | 45 | parts: 46 | get-source: 47 | plugin: dump 48 | source: https://github.com/digidigital/OCRthyPDF-Essentials.git 49 | 50 | tcltk-launch: 51 | plugin: nil 52 | stage-snaps: [tcltk-launch] 53 | 54 | debian-multiarch-triplet-provider-launch: 55 | plugin: nil 56 | stage-snaps: [debian-multiarch-triplet-provider-launch] 57 | 58 | snapcraft-preload: 59 | source: https://github.com/sergiusens/snapcraft-preload.git 60 | plugin: cmake 61 | cmake-parameters: 62 | - -DCMAKE_INSTALL_PREFIX=/usr -DLIBPATH=/lib 63 | build-packages: 64 | - gcc-multilib 65 | - g++-multilib 66 | stage-packages: 67 | - lib32stdc++6 68 | override-build: | 69 | snapcraftctl build 70 | ln -sf ../usr/lib/libsnapcraft-preload.so $SNAPCRAFT_PART_INSTALL/lib/libsnapcraft-preload.so 71 | 72 | pull-parts: 73 | plugin: nil 74 | stage-packages: 75 | - ghostscript 76 | - gsfonts 77 | - icc-profiles-free 78 | - tesseract-ocr-all 79 | build-packages: 80 | - ghostscript 81 | - curl 82 | override-prime: | 83 | snapcraftctl prime 84 | 85 | gslibpath=$(gs -h | grep Resource/Init | tr -d ' ':) 86 | ln -s -f ${gslibpath/\/usr\/share\/ghostscript/.} .${gslibpath}/../../../Init 87 | 88 | gsfontpath=$(gs -h | grep Resource/Font | tr -d ' ':) 89 | ln -s -f ${gsfontpath/\/usr\/share\/ghostscript/.} .${gsfontpath}/../../../Font 90 | 91 | tessdatapath=$(find ./ -iname tessdata) 92 | ln -s -f ${tessdatapath/usr\/share\/tesseract-ocr\//} ${tessdatapath}/../../tessdata 93 | 94 | curl --output "${tessdatapath}/best-#1.traineddata" "https://raw.githubusercontent.com/tesseract-ocr/tessdata_best/main/{deu,eng,fra,spa,por,ita,rus,ukr,jpn,jpn_vert,ara,hin,pol}.traineddata" 95 | 96 | # debug 97 | ls -l ${tessdatapath} 98 | 99 | ocrthypdf: 100 | plugin: python 101 | source: https://github.com/digidigital/OCRthyPDF-Essentials.git 102 | source-type: git 103 | 104 | stage-packages: 105 | - python3.9-venv 106 | - python3-tk 107 | - fonts-freefont-ttf 108 | - tcl 109 | - libxml2 110 | - pngquant 111 | - unpaper 112 | - qpdf 113 | - zlib1g 114 | - libzbar0 115 | - libnspr4 116 | - libnss3 117 | - libpoppler-cpp0v5 118 | - libpoppler97 119 | - jbig2enc 120 | 121 | override-pull: | 122 | snapcraftctl pull 123 | snapcraftctl set-version "$(git describe --tags)" 124 | 125 | build-packages: 126 | - build-essential 127 | - python3.9-venv 128 | - python3.9-dev 129 | - libpoppler-cpp-dev 130 | - pipenv 131 | 132 | build-environment: 133 | - SNAPCRAFT_PYTHON_INTERPRETER: python3.9 134 | # python3.9 lives in $SNAPCRAFT_PART_INSTALL/bin 135 | - PATH: $SNAPCRAFT_PART_INSTALL/bin:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/include/c++/9/:/usr/include/c++/:$PATH 136 | - CPATH: /usr/include/x86_64-linux-gnu/c++/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:usr/lib/gcc/x86_64-linux-gnu/:/usr/include/c++/9/:/usr/include/c++/ 137 | - PYTHONPATH: '' 138 | 139 | override-build: | 140 | # Work around a bug in snapcraft python plugin / gnome 3.38 extension 141 | # https://forum.snapcraft.io/t/build-a-snap-with-any-version-of-python-i-want/10420/8 142 | 143 | rm -rf $SNAPCRAFT_PART_INSTALL/usr/lib/python3.9/distutils 144 | cp -r /usr/lib/python3.9/distutils $SNAPCRAFT_PART_INSTALL/usr/lib/python3.9/distutils 145 | mkdir -p $SNAPCRAFT_PART_INSTALL/usr/include/ 146 | cp -r /usr/include/python3.9 $SNAPCRAFT_PART_INSTALL/usr/include/python3.9 147 | 148 | snapcraftctl build 149 | 150 | pip install -U pip wheel setuptools 151 | # ocrmypdf version >= 15.0.0 has dependecies not available in core20 152 | pip install pdftotext ocrmypdf==14.4.0 pikepdf==8.15.1 pyzbar darkdetect rich 153 | pip uninstall -y wheel 154 | 155 | # Apply shebang rewrite as done by snapcraft 156 | 157 | find $SNAPCRAFT_PART_INSTALL/bin/ -maxdepth 1 -mindepth 1 -type f -executable -exec \ 158 | sed -i \ 159 | "s|^#!${SNAPCRAFT_PART_INSTALL}/bin/python3.9$|#!/usr/bin/env python3|" {} \; 160 | 161 | # debug 162 | find $SNAPCRAFT_PART_INSTALL/bin/ -maxdepth 1 -mindepth 1 -type f -executable -exec head -n 1 {} \; 163 | -------------------------------------------------------------------------------- /testing/AI_generated_text.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digidigital/OCRthyPDF-Essentials/92959b432fb0abb2a5b7b08f843e4335cf9f0d40/testing/AI_generated_text.pdf -------------------------------------------------------------------------------- /testing/Example.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digidigital/OCRthyPDF-Essentials/92959b432fb0abb2a5b7b08f843e4335cf9f0d40/testing/Example.pdf -------------------------------------------------------------------------------- /testing/Example_Sticker_Mode.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digidigital/OCRthyPDF-Essentials/92959b432fb0abb2a5b7b08f843e4335cf9f0d40/testing/Example_Sticker_Mode.pdf -------------------------------------------------------------------------------- /testing/Readme.md: -------------------------------------------------------------------------------- 1 | Some PDFs used to test the application and a separator page that can be used to split scans. 2 | 3 | Other PDFs used for testing: 4 | * https://www.aaa.uni-augsburg.de/de/downloads/Fraunhofer_USA.pdf 5 | * https://www.ksk-gp.de/content/dam/myif/ksk-goeppingen/work/dokumente/pdf/english/USA-Patriot-Act-Certification.pdf?n=true 6 | * https://travel.state.gov/content/dam/visas/PDF-other/Uploading%20to%20CEAC-instrucions.pdf 7 | * https://us.riso.com/wp-content/uploads/assets/manuals/a0LA0000001gAtSMAU.PDF 8 | * https://www.uni-trier.de/fileadmin/international/international/3_Outgoings/Students/USA/USA-ProgrammlisteBeispiel.pdf 9 | * https://www.oecd-nea.org/mdep/mdep_ToR.pdf 10 | -------------------------------------------------------------------------------- /testing/Separator.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digidigital/OCRthyPDF-Essentials/92959b432fb0abb2a5b7b08f843e4335cf9f0d40/testing/Separator.pdf -------------------------------------------------------------------------------- /testing/Separator_Page_Areas.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digidigital/OCRthyPDF-Essentials/92959b432fb0abb2a5b7b08f843e4335cf9f0d40/testing/Separator_Page_Areas.odt -------------------------------------------------------------------------------- /testing/Separator_Page_Template.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digidigital/OCRthyPDF-Essentials/92959b432fb0abb2a5b7b08f843e4335cf9f0d40/testing/Separator_Page_Template.odt -------------------------------------------------------------------------------- /testing/barcodesQR.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digidigital/OCRthyPDF-Essentials/92959b432fb0abb2a5b7b08f843e4335cf9f0d40/testing/barcodesQR.zip --------------------------------------------------------------------------------