summaryrefslogtreecommitdiff
path: root/source
AgeCommit message (Collapse)Author
2013-08-28fix gradient ordering edge caseSimon Bünzli
Gradients in XPS code are ordered by offset. If however two offsets are equal, the order of the colors depends on the sort algorithm instead of the original order in the document. This is shown e.g. in 2245*.xps: <GradientStop Offset="0" Color="#ff00ff00" /> <GradientStop Offset="0.5" Color="#ff0000ff" /> <GradientStop Offset="0.5" Color="#ff00ff00" /> <GradientStop Offset="1" Color="#ff00ffff" /> Tracking the original order of gradient stops and always sorting earlier stops first makes gradient ordering consistent.
2013-08-28take /Version in /Root into accountSimon Bünzli
2013-08-28default OCGs to visibleSimon Bünzli
By default an OCG is supposed to be visible (for a testcase, see 2011 - ocg without ocgs invisible.pdf). Also, the default visibility value can be overwritten in both ways, so that pdf_is_hidden_ocg must check the state both for being "OFF" and "ON" (testcase was 2066 - ocg not printed.pdf rendered with event="Print").
2013-08-28fix memory leaksSimon Bünzli
* If fz_alpha_from_gray throws in fz_render_t3_glyph, then glyph is leaked. * If fz_new_image throws in pdf_load_image_imp, then colorspace and mask are leaked. * pdf_copy_pattern_gstate overwrites font and softmask without dropping them first.
2013-08-28sync bits when closing an LZW streamSimon Bünzli
Content streams may contain multiple inline images compressed as LZW data. The LZW filter used for such inline images might in some cases be closed in a state where less than 8 bits remain unread. The parent stream remembers that number (in stream->avail) and uses it again when reading the next inline image instead of resetting the remaining bit count when reading the next entire byte after the first inline image (or resetting it when closing the LZW stream as this patch does).
2013-08-28optionally detect initial EOL in CCITTFaxDecode streamsSimon Bünzli
If /EndOfLine is set for a CCITTFaxDecode stream, the image must start with an EOL per the spec. Other readers seem to ignore all data up to the first EOL in that case - instead of rejecting such images as broken. Required for e.g. "1848 - 1d faxd doesn't start with EOL.pdf".
2013-08-28fix various typosSimon Bünzli
2013-08-28Dump glyph cache size as part of mudraw -MRobin Watts
2013-08-28Fix big endian operation of paint code.Robin Watts
Broken in recent optimisations.
2013-08-28Fix bad interaction between incremental update and object streamsPaul Gardiner
The symptoms were that, created annoations were in some cases not saved. Some updated objects withing the document were not being moved into the incremental-save xref section. That in turn was due to nodes within the hierarchy of those objects not having their parent_num field set. The objects falling foul of this problem were those held in object streams. When any one object from a stream is cached, the whole stream is read and all other objects from that stream are also cached, but only the initial one has its parent_num set. This patch ensures that all objects from a stream are accounted for. In fact, for the initially-requested object, we now set parent_num twice, but that is harmless and the code to avoid doing so wouls be an unnecessary complication.
2013-08-27A few updates to signing supportPaul Gardiner
2013-08-26Optimise fz_paint_scan_with_color and fz_paint_spanRobin Watts
2013-08-26Optimise fz_paint_affine_near and similar fnsRobin Watts
This is the single largest hotspot in J11_acrobat.pdf on the pi, by a massive margin. J12_acrobat.pdf hits fz_paint_affine_g2rgb too.
2013-08-26Remove conditional code from draw-paint.cRobin Watts
If we want the alternative versions we can pull them out of git later.
2013-08-26Optimise fz_paint_span_with_color and fz_paint_solid_colorRobin Watts
The 2 biggest hotspots in benchmarking on the Raspberry pi at 1200dpi.
2013-08-26Fix memory leak in new glyph cache code.Robin Watts
Forgot to drop the font.
2013-08-24Support named destinations in remote link annotations.Sebastian Rasmussen
Previously there was a bug when parsing GoToR link annotations that had a named destination. mupdf incorrectly attempted to resolve the destination in the current document. Now the destination name is present in the link objects returned to the application so it can resolve any names for GoToR links in the remote document instead.
2013-08-24Link annotation code rearranged for aesthetic reasons.Sebastian Rasmussen
2013-08-23Look up glyphs by the 'uniXXXX' form if the glyph list duplicates all fail.Tor Andersson
2013-08-22Rework glyph cache to enable partial eviction.Robin Watts
The current code uses a hash table with linear probing. This means that when the cache fills up, we have no alternative but to bin the whole thing (or do an expensive rebuild). Change to using a simple hash table with linked lists of bucket chains, and additional LRU lists. This way we can ditch the oldest glyphs as we need more space.
2013-08-22Add support for writing of xref streamsPaul Gardiner
Use of the feature is currently enabled only in the case that a file that already contains xref streams is being updated incrementally. To do so in that case is necessary because an old-style xref is then not permitted. This fixes bug #694527
2013-08-21Add simple memory use tracking to mudrawRobin Watts
2013-08-21Add -F flag to mudraw to allow format selection.Robin Watts
This allows us to "mudraw -F ppm -o /dev/null" etc.
2013-08-20Use unscaled metrics in xps_measure_font_glyph.Tor Andersson
2013-08-13Signature creationPaul Gardiner
2013-08-13Remove unnecessary parameterPaul Gardiner
2013-08-13Insert the extra layers required for a signature-appearance streamPaul Gardiner
2013-08-13Add support for creating signature-field appearance streamsPaul Gardiner
2013-08-07Use ascender and descender to determine line skipPaul Gardiner
We should use the leading, if present, and if not present we should probably use a value a little greater than the sum of the ascender and descender, but this is definitely a step in the right direction and improves the look of filled-in forms.
2013-08-02Correctly account for alterations to xobject matrix and bboxPaul Gardiner
2013-08-02Handle more color cases in DA handlingPaul Gardiner
2013-08-02Improve naming consistencyPaul Gardiner
2013-07-30For freetext annotations, distinguish device and page space correctly.Paul Gardiner
2013-07-30Change pdf_measure_text to account for the borders around charactersPaul Gardiner
Prevously the true bounds of the glyph were used which didn't account for the total area blocked out by a character
2013-07-29Add support for freetext annotationsPaul Gardiner
This initial commit doesn't entirely complete the task: 1) There are a couple of ucs<->winansi conversions left out, 2) The text displayed by the appearance string can slightly overflow the annotation rectangle.
2013-07-29A few updates to the pdf devicePaul Gardiner
Ensure that only base14 fonts are used Set BaseFont using the name from the font Use WinAnsiEncoding Derive the font size from the trm matrix
2013-07-26Reword mutool usage text.Tor Andersson
2013-07-26Narrow definition of whitespace according to XML spec.Robin Watts
Thanks to Tor for finding the correct definitions for me.
2013-07-26Silence 'set but not used' warnings.Tor Andersson
2013-07-26Clean up whitespace.Tor Andersson
2013-07-26Add OpenXPS mime-type to fz_open_document.Tor Andersson
2013-07-25Fix mutool poster operation.Robin Watts
2013-07-25Bug 694402: Fix various SVG output problemsRobin Watts
Images were missing a space, hence giving errors. SVG text gets confused by leading (and repeated) whitespace, so elide it.
2013-07-24Fix memory overwrites when plotting glyphs that are completely clipped.Robin Watts
This bug has been in here for ages, but was masked by a bug in the gel clipping that was fixed by Tor earlier.
2013-07-24Fix leak of pdf_field_value.Robin Watts
pdf_js_setup_event strdups the field value, then nothing ever uses it again.
2013-07-24Bug 694429: Fix potential overflows in sprintf in pdfextractRobin Watts
Thanks to Pengsu Cheng for pointing out the problem.
2013-07-24Fix MIN/MAX confusion in edge list clipping.Tor Andersson
The case with infinite scissor didn't work.
2013-07-22Collect together all code to do with appearance-stream creationPaul Gardiner
2013-07-22Bug 694431: Fix potential infinite loop.Robin Watts
Thanks to "willus" for pointing out this problem.
2013-07-19Initial work on progressive loadingRobin Watts
We are testing this using a new -p flag to mupdf that sets a bitrate at which data will appear to arrive progressively as time goes on. For example: mupdf -p 102400 pdf_reference17.pdf Details of the scheme used here are presented in docs/progressive.txt