1
0
mirror of https://github.com/pdf2htmlEX/pdf2htmlEX.git synced 2024-12-22 13:00:08 +00:00

Upgrade Poppler to 24.06.1

Poppler-24.02.0 OutlineItem changed Title from Unicode pointer and length counter into Unicode vector. ( fc1c711cb5 )

Poppler-24.03.0 GooString.h exposes std::string::starts_with and ::ends_with which are CXX20.
This commit is contained in:
Vilius Sutkus '89 2024-06-13 14:18:06 +03:00
parent 6f85c88b1d
commit 1462429f31
5 changed files with 44 additions and 29 deletions

View File

@ -4,11 +4,12 @@
# versions # versions
# see: https://poppler.freedesktop.org/releases.html # see: https://poppler.freedesktop.org/releases.html
# current working: 24.01.0 # current working: 24.06.1
export PDF2HTMLEX_VERSION=0.18.8.rc2 export PDF2HTMLEX_VERSION=0.18.8.rc2
export POPPLER_VERSION=poppler-24.01.0 export POPPLER_VERSION=poppler-24.06.1
#export POPPLER_VERSION=poppler-24.01.0
#export POPPLER_VERSION=poppler-23.12.0 #export POPPLER_VERSION=poppler-23.12.0
#export POPPLER_VERSION=poppler-21.02.0 #export POPPLER_VERSION=poppler-21.02.0
#export POPPLER_VERSION=poppler-0.89.0 #export POPPLER_VERSION=poppler-0.89.0

View File

@ -125,8 +125,8 @@ set(CMAKE_THREAD_PREFER_PTHREAD ON)
set(THREADS_PREFER_PTHREAD_FLAG ON) set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED) find_package(Threads REQUIRED)
set(PDF2HTMLEX_LIBS ${PDF2HTMLEX_LIBS} Threads::Threads) set(PDF2HTMLEX_LIBS ${PDF2HTMLEX_LIBS} Threads::Threads)
# Poppler-23.12.0 requires CXX17 # Poppler-24.03.0 requires CXX20
set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_STANDARD_REQUIRED ON)
if(NOT CYGWIN) if(NOT CYGWIN)
set(CMAKE_CXX_EXTENSIONS OFF) set(CMAKE_CXX_EXTENSIONS OFF)

View File

@ -42,7 +42,7 @@ void HTMLRenderer::process_outline_items(const std::vector<OutlineItem*> * items
f_outline.fs << ">"; f_outline.fs << ">";
writeUnicodes(f_outline.fs, item->getTitle(), item->getTitleLength()); writeUnicodes(f_outline.fs, item->getTitle());
f_outline.fs << "</a>"; f_outline.fs << "</a>";

View File

@ -55,11 +55,8 @@ static int mapUTF8(Unicode u, char *buf, int bufSize)
} }
} }
void writeUnicodes(ostream & out, const Unicode * u, int uLen) static void writeUnicode(ostream & out, const Unicode u) {
{ switch(u)
for(int i = 0; i < uLen; ++i)
{
switch(u[i])
{ {
case '&': case '&':
out << "&amp;"; out << "&amp;";
@ -79,10 +76,25 @@ void writeUnicodes(ostream & out, const Unicode * u, int uLen)
default: default:
{ {
char buf[4]; char buf[4];
auto n = mapUTF8(u[i], buf, 4); auto n = mapUTF8(u, buf, 4);
out.write(buf, n); out.write(buf, n);
} }
} }
}
void writeUnicodes(ostream & out, const Unicode * u, int uLen)
{
for(int i = 0; i < uLen; ++i)
{
writeUnicode(out, u[i]);
}
}
void writeUnicodes(ostream & out, const std::vector<Unicode> & u)
{
for(const auto & i: u)
{
writeUnicode(out, i);
} }
} }

View File

@ -9,6 +9,7 @@
#define ENCODING_H__ #define ENCODING_H__
#include <string> #include <string>
#include <vector>
#include <iostream> #include <iostream>
#include <CharTypes.h> #include <CharTypes.h>
@ -19,6 +20,7 @@ namespace pdf2htmlEX {
* Escape necessary characters, and map Unicode to UTF-8 * Escape necessary characters, and map Unicode to UTF-8
*/ */
void writeUnicodes(std::ostream & out, const Unicode * u, int uLen); void writeUnicodes(std::ostream & out, const Unicode * u, int uLen);
void writeUnicodes(std::ostream & out, const std::vector<Unicode> & u);
/* /*