Age | Commit message (Collapse) | Author |
|
For consistent cross-platform results that also matches our glyph
advances since platform functions might be using hints which we don’t
use.
Change-Id: I4aebd3e7c5f460dff584f5eba74f7a11bab0f9b1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154388
Tested-by: Jenkins
Reviewed-by: خالد حسني <khaled@libreoffice.org>
|
|
ever since
commit 07d790ca473cd6e71f0343419b819fa6b485dc01
Author: Michael Stahl <michael.stahl@allotropia.de>
Date: Wed Jul 12 15:26:25 2023 +0200
tdf#154982 vcl: PDF Export: split BeginStructureElement
Change-Id: I4708fde93fe9a10e67fefc7e87fa9f3f49075375
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154720
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
The first form annotation is missing /StructParent.
The invalid value is -1, not 0. Typically 0 is the index of the MCIDs
entry (m_aMCIDParents) in the ParentTree /Nums, but if there is not a
single MCID in the document, this is omitted and 0 may be a valid
annotation then.
Change-Id: I9885d176eae272d98000f9d9f0ffae82558c0ea0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154668
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
|
|
... should be below their anchor paragraph in the structure tree.
Refactor SwEnhancedPDFExportHelper (etc.) to use the new
EnsureStructureElement()/InitStructureElement() functions instead of
SetCurrentStructureElement() for the frames, and allow it for flys that
don't have their anchor paragraphs created yet because the hell layer is
exported before the document body.
Change-Id: I1be3b54002e8196772e6f9d81dd0fd0c85b6e34b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154399
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
|
|
... into 3 parts:
EnsureStructureElement/InitStructureElement/BeginStructureElement
So EnsureStructureElement and BeginStructureElement/EndStructureElement
can be called multiple times for the same object, passing in a unique
key and PDFExtOutDevData will only create the element once.
InitStructureElement will be used exactly once for each object when its
actual content is exported.
In PDFExtOutDevData rely on the indexes being the same here and in
PDFWriterImpl, because then only PDFExtOutDevData needs to maintain the
map from key to index.
Change-Id: Idea6e34627fe559038cf13cf01dafe84b759e3c8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154357
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
|
|
hb_icu_script_to_script is used in CommonSalLayout.cxx only
Change-Id: I1d8de8c420963b42623bb06a7f5e1f37986e1c16
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149935
Tested-by: Jenkins
Reviewed-by: خالد حسني <khaled@libreoffice.org>
|
|
Change-Id: Ie3e6e7e947d9322f3999cf3274a6c10ea717afe2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154276
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Old version 3 of PAC throws exceptions if these are capitalized;
presumably this is case sensitive, and all-lowercase unlike everything
else.
Change-Id: Ifc0cef38e333123e810376ab6a7630443d253841
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154282
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
|
|
which will help avoid ambiguity in method calls in an upcoming patch
Change-Id: Ic7607ac7d95559e0942a84fb3226cfdd6ade22bc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154146
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
ever since
commit 3fbae5dc7e7b200776bbc8a7c2a43e1e04f15a2b
Author: Caolán McNamara <caolanm@redhat.com>
Date: Thu Aug 5 14:57:59 2021 +0100
gtk is the only case auto-accel is true, and the menubar is native
gtk there
Change-Id: I209a410a231952dcbbb587ed6034fcfec77eaead
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154059
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
ever since
commit 4160be791daaef1a0c059a248f678cbad6408a69
Author: Caolán McNamara <caolanm@redhat.com>
Date: Tue Jan 10 20:55:31 2023 +0000
no more X11SalBitmap
Change-Id: I9dd55acdde6af1bf7501a71e92725ab739801b0b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154060
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
We were always assuming the default 720 DPI, but this is not always true
when printing to file as the DPI would depend on printer settings in
this case.
Change-Id: I747f8e24f0942ecb94eb8acfc1dd9972d83ba0e3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153978
Tested-by: Jenkins
Reviewed-by: خالد حسني <khaled@libreoffice.org>
|
|
Change-Id: I64e57a832678be935b69a5cea328cc252a4bf29d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153951
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
|
|
Like we do with underline color, so that color does not leak from
elsewhere.
Change-Id: I3716a117a0d0a1260e47cbfed2242f401a09d7b6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153877
Tested-by: Jenkins
Reviewed-by: خالد حسني <khaled@libreoffice.org>
|
|
... is also Artifact.
The problem is that ImpEditEngine::Paint() always produces tags,
it can't easily check if it's inside a layout environment that is an
Artifact.
But it looks like PDFWriterImpl::beginStructureElement() already wants
to handle and suppress a structure element inside a NonStruct, except
that it calls endStructureElementMCSeq() before checkEmitStructure(),
so no structure marked content sequence is produced, but the content is
outside the Artifact marked content sequence, and possibly a second
Artifact marked content sequence will be opened once the structure
element is finished.
(btw, it's allowed to nest marked content sequences in PDF, but
nesting a structure element inside an Artifact appears dubious)
Change-Id: Ib3eef9c611e28242854c712ce974fd8cfecd8ac2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153810
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
|
|
If enabled, the comments mess up the structure elements, because the
PageSyncData::mActions stores indexes into the GDIMetaFile::m_aList
vector, and in PageSyncData::PlaySyncPageAct() the indexes don't match.
This is because SwViewShell::PrintOrPDFExport() replaces the GDIMetaFile
with a temporary one, then records the page content, then applies
scaling to the temporary one and replays it, recording with the original
one; somehow replaying a temporary GDIMetaFile with 270 actions to one
that already has 4 actions results in 392 actions.
It's not obvious how this can work with the temporary GDIMetaFile, so
try to get rid of it; not sure if there any drawbacks to this but the
GDIMetaFile is freshly created by the caller in any case.
Change-Id: Ic297367ea307aa8eee8d609751d06abf417e9629
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153808
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
|
|
A regression from the commit below caused the resources dictionary of
the Type 3 font to be omitted making the images inaccessible:
commit 845fbfcce9091e541bab657163b026aad8648261
Author: Khaled Hosny <khaled@libreoffice.org>
Date: Thu Jun 15 06:27:38 2023 +0300
Don’t add empty Fonts dictionary to Type 3 font resources
Change-Id: I479ca328bd1b1228ba722678d3d9686c8456b350
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153780
Tested-by: Jenkins
Reviewed-by: خالد حسني <khaled@libreoffice.org>
|
|
We were requiring ICU 4.6 which was released in 2011, and ifdef'ing our
way through newer ICU versions. ICU is a core dependency and it makes no
sense to build LibreOffice with such ancient versions of it.
This change requires ICU 66 (released in 2020), and removes all the
ifdefs for older versions. There are more cleanups to do, but these will
be done separately.
Change-Id: I2e4f7608a08f4d531b0a4c74bbfdf91a451f833f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153387
Tested-by: Jenkins
Reviewed-by: خالد حسني <khaled@libreoffice.org>
|
|
This aligns the code in PDF writer with
OutputDevice::ImplDrawEmphasisMarks().
Change-Id: I404beda30ff0eb1d6c59d971a7daa59b559ef70f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153326
Tested-by: Jenkins
Reviewed-by: خالد حسني <khaled@libreoffice.org>
|
|
Mixed script vertical text was not correctly splitting runs at script
changes, resulting in Hangul text being mixed with Han text in the same
run breaking the Hangul composition.
Change-Id: I09c3f799bede6aa8a19684779d500504a9813af7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153313
Tested-by: Jenkins
Reviewed-by: خالد حسني <khaled@libreoffice.org>
|
|
Change-Id: I7a6088c570ebd0680cc1b2603b946192a19bef26
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153268
Tested-by: Jenkins
Reviewed-by: خالد حسني <khaled@libreoffice.org>
|
|
Change-Id: I53b09910c8981003bb77f98e8e1dd10ee9356b71
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153296
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
|
|
Change-Id: If782f7310b1c1b7e7855a6b6050ebe9acdf4da20
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153297
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
|
|
Problem does not seem to have any
relation with .otf files management.
Problem arises when:
- we use a font with setting certain
family/bold/italic/pitch values
- we have this font installed, but
we don't have a version with
matching
family/bold/italic/pitch
In this case the "not a perfect match"
fonts were not saved in the .odt
Change-Id: Ie4e2b9c34b79ac99f03c57bed4fdc5f4d718dcc2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153007
Tested-by: Jenkins
Reviewed-by: خالد حسني <khaled@libreoffice.org>
|
|
Change-Id: Iedb4ca9aef44ef8ead9b021075c4808001e9ae5b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153237
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
|
|
Change-Id: Ia307f398260343fe388965673da42d9404195224
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153117
Tested-by: Jenkins
Reviewed-by: خالد حسني <khaled@libreoffice.org>
|
|
If the Type 3 font does not use any other fonts, skip writing Fonts to
its Resources dictionary.
Change-Id: I1d0489debeb9f0e24022316551eb234b279381c1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153100
Tested-by: Jenkins
Reviewed-by: خالد حسني <khaled@libreoffice.org>
|
|
and share similar code
Change-Id: I7729a46d40845893f577c273c1ab340f69ebb51b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151230
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151754
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
|
|
This is a regression from:
commit 43a5400063b17ed4ba4cbb38bdf5da4a991f60e2
Author: Khaled Hosny <khaled@libreoffice.org>
Date: Thu May 25 10:59:18 2023 +0300
tdf#152048: Fix underline width for Kashida-justified text
It fixed measuring width when there is Kashida justification, but broke
it for font fallback, because of the way MultiSalLayout measures the
text width takes the maximum of the text widths for all its layouts, but
layouts with missing glyphs are now giving wrong text width as they are
measuring the width of .notdef (GID 0) glyph.
This change makes MultiSalLayout measure the text width by iterating
over all its valid glyphs.
Change-Id: I8b19e0d44326c6f0afe6e504ab6d90c6fb3575f9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152933
Tested-by: Jenkins
Reviewed-by: خالد حسني <khaled@libreoffice.org>
|
|
Unfortunately SVG export is based on metafiles and thus there
is (in principle) no way to get the BGradient/ColorStop/MCGR
data transfered as needed. For that, using UNO API to read the
model or using B2DPrimitives would help - as is better for the
export respectively.
Since there is not the time to re-design SVG export I added
this 'compromize' as a fix. It gets the needed data transported
over the metafile (that part is the compromize). It then
exports the MCGR data to SVG (at least - as was already there -
if it's a linear/axial gradient). This happens now with all
Gradient Stops when there is a MCGR gradient. That part is/will
hopefully be re-usable if SVG export gets redesigned.
I also added a handling for StepCount feature, so when used (in
LO, others do not have that) 'hard' color stops get generated
to make the gradient look identical for SVG export.
Had to make adding of that extra-information in metafiles
dependent on exporting really to SVG. There are 51 cases which
use 'MetaActionType::COMMENT' which would potentially have
to be adapted.
Also added code to solve the problem for TransparencePrimitive2D
at VclMetafileProcessor2D::processTransparencePrimitive2D. This
will now - also only for SVG export - directly create the needed
MetaFloatTransparentAction and add additional MCGR information.
This will be used on SVG export to write a 'Mask' as was done
before. This is now capable of creating fill MCGR-Masks in
the sense that any number of TransparencyStops will be supported.
Change-Id: Ic6d022714eae96b8fbc09e60652851ac5799b757
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152623
Tested-by: Jenkins
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
|
|
Added suport to import FreeText annotations. Added some suport to export
graphical annotations. Fixed some color issues to be more inline with
the pdfium library.
Change-Id: I7371595ebb95594ee765ae532ca7c7d4f0499592
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152606
Tested-by: Jenkins
Reviewed-by: Andras Timar <andras.timar@collabora.com>
|
|
Change-Id: I8323ae631c13da80cc3f4b8b8826cb9b23e788f3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152384
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
|
|
When cloning an RTL glyph range, we might end up cutting in the middle
of a cluster e.g. between a base character and a combining mark since
both with have the same charPos() after:
commit 09c076c3f29c28497f162d3a5b7baab040725d56
Author: Khaled Hosny <khaled@aliftype.com>
Date: Wed Oct 5 21:00:46 2022 +0200
tdf#151350: Fix extraneous gaps before marks
(which changed how HarfBuzz sets up clusters back to the default where
marks form clusters with their bases, before that a mark formed its own
cluster).
This leads to the cloned glyph range to include the glyph for the
combining marks, while it is not included in the text string.
Change-Id: I83031e0e0ffc7c5932101649a9cc2bf953a6347d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152380
Tested-by: Jenkins
Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
|
|
... for standard roles; no idea what these are supposed to be good for.
Change-Id: Ie2ccf394631a2bccb496b2f93e26a571ba84d58d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152334
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
|
|
Fix GenericSalLayout::GetTextWidth() again, this time doing away with
using linearPos as it is wrong, the glyph’s position is not directly
related to how much it contributes to the text width (for example,
combining marks have zero advance width yet their position is different
from the base glyph they apply too). This is a followup to:
commit ce7c1c608fa99c86c8f2380cd8b82d02123f514e
Author: Khaled Hosny <khaled@aliftype.com>
Date: Wed Aug 31 07:07:54 2022 +0200
vcl: Fix GenericSalLayout::GetTextWidth()
Additionally, inserted Kashida should have its origWidth and newWidth
both set to zero, since it does not add to the text width, all
additional width is already added to the glyph the Kashida is applied
to.
With both fixes, the text width of Kashida-justified lines is correctly
calculated and the underline no longer extends beyond the text line.
Fix test expectation now we are reporting the real text width.
Change-Id: I0de93f955929cf3030cf420cb4f4e94df974fb79
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152267
Tested-by: Jenkins
Reviewed-by: خالد حسني <khaled@libreoffice.org>
|
|
Change-Id: Id97c77d4c836e4f3c5a9eff6da07eb52d29248c6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152105
Tested-by: Jenkins
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
|
|
rather than writing a bunch more code, extract the common part from
comphelper::SequenceInputStream into a new base class
Change-Id: I0d3561e3ca2e748b904128e3b5955e27196d7170
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151943
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
(regression from commit fa3f04bdd4f73a1b3be70dfb709c44638ef7e3d9)
Change-Id: I5ccc37cd538448b2cb9db594287b49869589b2db
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151700
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
|
|
which we can use to simplify it
Change-Id: I8fa38a9f414d8d720e31bd1f71fd722f6a95fdbc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151635
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Ie2782c1d68f73e5e88cf868eb1ce106ec0c181b0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151558
Tested-by: Caolán McNamara <caolanm@redhat.com>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
PDF doesn’t support CFF2 table and we currently don’t convert them to
Type 1 (like we do with CFF table), so treat it like fonts with
variations and embed as Type 3 fonts.
Change-Id: I963b55d5d0ed1470eda157c7e10cae63195a0c91
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151532
Tested-by: Jenkins
Reviewed-by: خالد حسني <khaled@aliftype.com>
|
|
Change-Id: I70c0a72d6bbbec7e809edc856976633fce3efa9d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151458
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
And change o3tl::iterateCodePoints to use sal_Int32 for its
second param, to integrate better with places where the parameter
comes from an UNO API, which cannot use std::size_t
Change-Id: I7b9dd2c9bc7f48e6c4a912f039f1b5dae7beae69
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151421
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
We can easily accumulate a large number of in-memory graphic
objects, and swapping these as well as the un-compressed
images can become important.
For now we swap out the container when the image is swapped
out, however it seems unlikely it will ever need to be swapped
in again.
Despite the shared pImpl, we retained the reference counting
on the underling vector to keep this immutable while we hand
out a MemoryStream reference to it.
Change-Id: Ib7ca45afb8499460b1852461f7c11afca3f3cdfa
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151359
Tested-by: Jenkins
|
|
Change-Id: I9319896eb4d0e7728a9ded77fa1bfd05e63fbbe3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151326
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: Iee5d82fff5edf14dd4f8adeabc305e96dd0ddd8d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151260
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: I229f25a8a15b21257756ecfa008b9e99681003c4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151172
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: I88155f7f2abf42a11376d6f54aab28c233cf7e07
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151100
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
std::list->std::vector reduces output time by 10% because we search the
m_aChildren often and vector is better at that
Change-Id: I4d0d5f6248a9c36aa0085cb22315ad6e2f53738e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151041
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I9fee1ad3467c18d2714ef211f2c95c6b4211415b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150946
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|