TessPDFRenderer: Improve robustness of API (issue #1804)

Signed-off-by: Stefan Weil <sw@weilnetz.de>
This commit is contained in:
Stefan Weil 2018-08-01 09:11:04 +02:00
parent 9ce4d05188
commit eb69dd0201
2 changed files with 5 additions and 4 deletions

View File

@ -182,9 +182,9 @@ static const int kMaxBytesPerCodepoint = 20;
TessPDFRenderer::TessPDFRenderer(const char *outputbase, const char *datadir,
bool textonly)
: TessResultRenderer(outputbase, "pdf") {
: TessResultRenderer(outputbase, "pdf"),
datadir_(datadir) {
obj_ = 0;
datadir_ = datadir;
textonly_ = textonly;
offsets_.push_back(0);
}
@ -654,7 +654,7 @@ bool TessPDFRenderer::BeginDocumentHandler() {
if (n >= sizeof(buf)) return false;
AppendPDFObject(buf);
n = snprintf(buf, sizeof(buf), "%s/pdf.ttf", datadir_);
n = snprintf(buf, sizeof(buf), "%s/pdf.ttf", datadir_.c_str());
if (n >= sizeof(buf)) return false;
FILE *fp = fopen(buf, "rb");
if (!fp) {

View File

@ -21,6 +21,7 @@
// To avoid collision with other typenames include the ABSOLUTE MINIMUM
// complexity of includes here. Use forward declarations wherever possible
// and hide includes of complex types in baseapi.cpp.
#include <string> // for std::string
#include "genericvector.h"
#include "platform.h"
@ -202,7 +203,7 @@ class TESS_API TessPDFRenderer : public TessResultRenderer {
long int obj_; // counter for PDF objects
GenericVector<long int> offsets_; // offset of every PDF object in bytes
GenericVector<long int> pages_; // object number for every /Page object
const char *datadir_; // where to find the custom font
std::string datadir_; // where to find the custom font
bool textonly_; // skip images if set
// Bookkeeping only. DIY = Do It Yourself.
void AppendPDFObjectDIY(size_t objectsize);