We live by example! Need custom code? - Email the ÜberDude - Joe C. Hecht
What platforms do you build on?
The ÜberBuild™ system works on many platforms. Currently, we test on:
Linux ARM x32
Linux ARM x64
Linux Intel x32
Linux Intel x64
OSX Intel x32
OSX Intel x64
Windows ARM x32 (store apps)
Windows ARM x64 (store apps)
Windows Intel x32 (desktop and store apps)
Windows Intel x64 (desktop and store apps)
What compilers do you build with?
The ÜberBuild™ system currently supports a native build of the the system using:
GCC (on unix like systems)
CLANG (on unix like systems)
Microsoft Visual Studio 2010
Microsoft Visual Studio 2013
Microsoft Visual Studio 2015
Microsoft Visual Studio 2017
We also provide link support for:
What library types does Über build™?
.a and .so (Linux)
.a, .so, and .bundle (OSX)
.lib and .dll (Windows)
What 3rd party open source does ÜberPDF use?
FreeType (coming shortly)
Cairo (coming shortly)
Help! ÜberBuild does not!
Please let us know!
Best guess: Are you running Windows? Did you update Windows? DOT NET updates too?
ÜberBuild simply calls NMAKE (or MAKE on Unix like systems) via standard shell scripting. If it does not succeed, most likely, something is wrong (or out of date) with your development setup.
We successfully test building on 47 different combinations of Visual Studio on Windows (really - it is true).
We test using a clean copies of all operating systems, update them, and install the basic development tool package.
Windows: 7, 8, 10, both 32 and 64 bit versions with Visual Studio 2010, 2013, 2015, 2017 (and some testing using unsupported Windows XP and Vista versions with old SDK/DDK compilers).
OSX: 10.x with Xcode command line tools.
Linux: Ubuntu 14.04 and 16.04 (and others).
In short, we build here just fine on a clean, updated OS.
Know that we are very interested in good bug reports. If you receive an error that is not in English, please translate it and then send both the translated and un-translated error.
Also, please be reasonable in your development expectations. We cannot provide much assistance in helping to patch-up old unsupported development environments.
What are the known issues?
Windows 7: The ÜberBuild™ system may experience issues under Windows 7
(perhaps other older versions of Windows) using the some Microsoft Visual Studio
versions if you have not updated Windows recently. Apparently, there
are some old versions of the runtime libraries floating around with some flaws.
In short, update your OS, and as a last resort, remove and re-install Visual Studio.
We are not yet positive, however, we believe this may be remedied by applying
somewhat recent DOT NET updates.
Windows XP: System build support (not link support) currently requires a Microsoft C/C++ compiler
that can work with modern header files such as stdint.h. In addition, you may need the missing Windows choice.exe
system file that Microsoft left out of XP (and Microsoft no longer allows customers to download
after XP support ended). Our ChoiceCmd.zip
contains a limited knockoff (with source) that works with the ÜberBuild™ system (add it to your system path).
Our choice.exe will be included as a default to use in the next version of UberBuild™.
I do not want to build ÜberPDF™! Got any pre-compiled binaries?
We will be releasing a reference build shortly, containing complete binaries and build logs of the entire
ÜberPDF™ system built for every platform we support.
This is too complex! Got a installer for Delphi and C++Builder?
We plan to release a version with drop in IDE components after we release Gx Math & Graphics™.
When will the FreeType and Cairo plug-ins, and native MinGW, C++Builder plug-ins be released?
Quickly. I am mostly waiting for the dust to settle from the initial release to see how that goes before adding these new layers.
When will the ÜberPDF-Utils™, and GX Math & Graphics™, be released?
ASAP. I am just one guy, and there is a mountain of code (over 1.5 million lines) to be released.
Can you hurry up and post more documention?
This a free open source project. I am getting there as fast as I can.
All the functions for the PDF-SDK objects work the same way, so if you understand
one, you understand them all.
In the mean time, see the examples section (we are available for assistance as well).
How do I link ÜberPDF™ with my application?
1) Decide if you are going to static link to the ÜberPDF™ lib files,
dynamically static link (using a shared library import), or runtime dynamic link
to ÜberPDF™. If you are dynamic runtime linking, your application will need to
supply the path to the ÜberPDF™ .dll, .so, or .bundle library file to laod
2) Add the correct include path for the platform and compiler you wish to use.
3) Add the correct library path for the platform, compiler, and runtime library you wish to use.
4) Make the proper DEFINE to let the UberPDF™ know what platform and compiler you are using.
This define is made in the following coded form:
You are building under Win32, using the MSVC compiler, building for Win32:
You are building under Win32, using the MSVC compiler, building for Win64:
You are building under OSX64, using the GCC compiler (yes, CLANG), building for OSX32:
Currently, the following defines are supported:
The UBER_NativeBuildPlatform_XXX defines seem goofy. Can you remove them?
Sorry, we need them for our internal builds (see UberBuild history FAQ).
It's open source! Please feel free to use search and replace (:
What is the test doing?
1) Constructs a new PDF document from scratch.
2) Constructs a fancy PDF page with text and graphics from scratch.
3) Loads the entire PDF Reference manual (756 pages) and imports 3 pages to the new document.
4) Loads the entire PostScript® Tutorial and Cookbook (BlueBook - 242 Pages) and imports 3 pages to the new document.
5) Loads the entire PostScript® Language Program Design (GreenBook - 228 Pages) and imports 3 pages to the new document.
6) Loads the entire PostScript® Language Reference Manual (RedBook - 912 Pages) and imports 3 pages to the new document.
7) Saves out the 13 pages to a new document (optimized).
8) Completely disassembles the 13 pages to the lowest possible level and dumps the complete debug information for each object (neatly formatted) producing an additional 546 pages of debug information all while providing complete error checking in the code.
9) Saves out the 559 pages (with debug info) to a second (optimized) PDF with AES Encryption (and PDF protections) with both user and owner rights and passwords (foo, and foobar)
What is the password for the "*-out-2.pdf" files that get created during the build test?
PDF user password: foo
PDF owner password: foobar
Why are the JPEG functions deprecated in the SDK and moving to PDF-Utils?
For the public release of the SDK, we want to keep the weight down, and not burden the SDK library with a ton
of specific support functions.
Much code was moved to PDF-Utils before the initial public release of the SDK, however,
removing the JPEG functions would have significantly delayed our launch.
Where are the Microsoft Store application examples?
Microsoft Store applications require code signing certs, and at release time, I was not
fully convinced that the Visual Studio example project did not contain information
that should not be distributed to the public, so I left it out at the last moment.
Our standard "C/C++" build test code is fully complaint with use in a Microsoft
Store application (it is the exact code we drop in to the Visual Studio store project).
Stay tuned to our examples page for an update.
Is the ÜberPDF-SDK™ a wrapper around QPDF?
Indeed it is!
PDF object manipulation, security, and encryption should not be taken lightly. Do you really want to rely on un-vetted homegrown code?
Most all great PDF SDK's wrap QPDF. Take a look for yourself.
They all wrap something. But what do they wrap (and not)?
PDF SDK's fall into two flavors: "commerical grade" and "homegrown".
QPDF is a commercial grade library with a long solid history (it is included in the heart of most Linux distributions).
We are long time supporters of Jay Berkenbilt's most excellent QPDF project (and we are significant contributors as well).
We used to "roll our own", but we realized long ago, QPDF is simply the best way to go.
We invite you to examine the source code of the PDF libraries available, and make the same decision.
PDF is a highly exploitable format. We take this threat very seriously, and encourage you to do the same.
Good PDF SDK's sell for lot, and often demand royalties! Why did you open source ÜberPDF-SDK™?
Have you ever read the license agreement from your PDF SDK? My lawyer read one
from a "Royalty Free" SDK, and the non compete clause basically
stated you could not develop a retail product with it. Server use? oh my!
You bought the source, but can you build all the source? One popular SDK sells
a pricey source code edition. It comes with pre-compiled 3rd party libs and objs
(binary blobs) it links to. Pascal cannot compile the C source, and you may quickly get stuck with a
SDK that links to old, out of date library code that gets flagged as exploitable.
What did they build those binary blobs with? Should you invest into that?
Sure, you can roll up your sleeves, go chase down the latest source, and try to piece together a total build. Good luck with that.
There is a lot to be said for "100% built from fresh source". If libPNG
gets an exploit (for example), the fix can be quickly implemented.
PDF is a highly exploitable format that deals in security and encryption.
PDF is simply not an area to be trusting in "homegrown code and un-vetted binary blobs".
ÜberPDF-SDK™ was released as open source because I have lost faith in close source SDK's. It's a breath of fresh air (and the future).
If you agree, please support the effort via contribution of code, helping others, or financial contribution.
What is the history of ÜberBuild™, ÜberPDF™ and Gx Math & Graphics™?
Joe C. Hecht has been writing commercial graphic engines and drivers since 1985, with an
emphasis on PostScript® and PDF. His works include many commercial products,
animation engines (used by Disney and Warner Brothers), and print drivers.
ÜberPDF-SDK™, ÜberPDF-Utils™, and Gx Math & Graphics™ is a gathering of
choice source code (over 1.5 million lines) from the past three decades to be released as open
ÜberBuild™ is a very old, in-house script engine designed to gather,
build, link, and test the code from a large number of libraries, for a large number
of different projects, across a large number of platforms, using a large number of
computers. ÜberBuild™ has been used for many years to do distributed
builds and assembly. The open source version of ÜberBuild™
(used to build ÜberPDF™ et all) was sightly trimmed down and hacked for
public consumption. Simply put, we realized that building and linking all the libraries
we plan to use was probably beyond the means (or patience) of the average coder, so we
hacked ÜberBuild™ in an attempt to provide that service.
"We live by example"? What does that mean?
We make our living by writing example code. Need some good custom code? Email the ÜberDude - Joe C. Hecht
Back to home...
DMCA (Digital Millennium Copyright Act) Contact Information
Copyright © 2018 by CODE4SALE, LLC - All rights reserved.
ÜberPDF™, ÜberPDFsdk™, ÜberPDFutils™, ÜberBuild™, and ÜberDude™ are trademarks of Code4Sale, LLC.
GX Math & Graphics™ is a trademark of Joe C. Hecht
PostScript® and Display PostScript® are registered trademarks of Adobe Systems Incorporated
Other product names, trademarks, and servicemarks mentioned are owned by their respective owners.
Terms and Conditions - Use of this site, code, submissions, ideas, suggestions, products,
downloads, and payments are expressly at your own risk.
Privacy - This is a cookie free, script free, pop over free, and hot link free site!
We collect no information other than web server logs, and will not share unless required by law.
Last Modified 2018-01-24 14:07 U.T.C.