Author: jghali
Date: Wed Oct 6 19:21:31 2021
New Revision: 24737
URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=24737
Log:
#16656: Crash when importing pdf with the option as text
Modified:
trunk/Scribus/scribus/plugins/import/pdf/pdftextrecognition.cpp
Modified: trunk/Scribus/scribus/plugins/import/pdf/pdftextrecognition.cpp
URL:
http://scribus.net/websvn/diff.php?repname=Scribus&rev=24737&path=/trunk/Scribus/scribus/plugins/import/pdf/pdftextrecognition.cpp
==============================================================================
--- trunk/Scribus/scribus/plugins/import/pdf/pdftextrecognition.cpp
(original)
+++ trunk/Scribus/scribus/plugins/import/pdf/pdftextrecognition.cpp Wed Oct
6 19:21:31 2021
@@ -634,12 +634,13 @@
void PdfTextOutputDev::endTextObject(GfxState* state)
{
- if
(!m_pdfTextRecognition.activePdfTextRegion->pdfTextRegionLines.empty())
+ auto* activePdfTextRegion = m_pdfTextRecognition.activePdfTextRegion;
+ if (!activePdfTextRegion->pdfTextRegionLines.empty() &&
activePdfTextRegion->glyphs.size() > 0)
{
// Add the last glyph to the textregion
- QPointF glyphXY =
m_pdfTextRecognition.activePdfTextRegion->lastXY;
-
m_pdfTextRecognition.activePdfTextRegion->lastXY.setX(m_pdfTextRecognition.activePdfTextRegion->lastXY.x()
- m_pdfTextRecognition.activePdfTextRegion->glyphs.back().dx);
- if
(m_pdfTextRecognition.activePdfTextRegion->addGlyphAtPoint(glyphXY,
m_pdfTextRecognition.activePdfTextRegion->glyphs.back()) ==
PdfTextRegion::LineType::FAIL)
+ QPointF glyphXY = activePdfTextRegion->lastXY;
+
activePdfTextRegion->lastXY.setX(activePdfTextRegion->lastXY.x() -
activePdfTextRegion->glyphs.back().dx);
+ if (activePdfTextRegion->addGlyphAtPoint(glyphXY,
activePdfTextRegion->glyphs.back()) == PdfTextRegion::LineType::FAIL)
{
qDebug("FIXME: Rogue glyph detected, this should never
happen because the cursor should move before glyphs in new regions are added.");
}
@@ -648,7 +649,7 @@
#endif
renderTextFrame();
}
- else if
(!m_pdfTextRecognition.activePdfTextRegion->pdfTextRegionLines.empty())
+ else if (!activePdfTextRegion->pdfTextRegionLines.empty())
qDebug("FIXME:Rogue textblock");
m_pdfTextRecognition.setCharMode(PdfTextRecognition::AddCharMode::ADDFIRSTCHAR);
_______________________________________________
scribus-commit mailing list
[email protected]
http://lists.scribus.net/mailman/listinfo/scribus-commit