OLD | NEW |
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
6 | 6 |
7 #include "public/fpdfview.h" | 7 #include "public/fpdfview.h" |
8 | 8 |
9 #include <memory> | 9 #include <memory> |
10 #include <utility> | 10 #include <utility> |
(...skipping 375 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
386 DLLEXPORT void STDCALL FPDF_SetPrintTextWithGDI(FPDF_BOOL use_gdi) { | 386 DLLEXPORT void STDCALL FPDF_SetPrintTextWithGDI(FPDF_BOOL use_gdi) { |
387 g_pdfium_print_text_with_gdi = !!use_gdi; | 387 g_pdfium_print_text_with_gdi = !!use_gdi; |
388 } | 388 } |
389 #endif | 389 #endif |
390 | 390 |
391 DLLEXPORT FPDF_DOCUMENT STDCALL FPDF_LoadDocument(FPDF_STRING file_path, | 391 DLLEXPORT FPDF_DOCUMENT STDCALL FPDF_LoadDocument(FPDF_STRING file_path, |
392 FPDF_BYTESTRING password) { | 392 FPDF_BYTESTRING password) { |
393 // NOTE: the creation of the file needs to be by the embedder on the | 393 // NOTE: the creation of the file needs to be by the embedder on the |
394 // other side of this API. | 394 // other side of this API. |
395 IFX_SeekableReadStream* pFileAccess = | 395 IFX_SeekableReadStream* pFileAccess = |
396 FX_CreateFileRead((const FX_CHAR*)file_path); | 396 IFX_SeekableReadStream::CreateFromFilename((const FX_CHAR*)file_path); |
397 if (!pFileAccess) { | 397 if (!pFileAccess) |
398 return nullptr; | 398 return nullptr; |
399 } | |
400 | 399 |
401 std::unique_ptr<CPDF_Parser> pParser(new CPDF_Parser); | 400 auto pParser = pdfium::MakeUnique<CPDF_Parser>(); |
402 pParser->SetPassword(password); | 401 pParser->SetPassword(password); |
403 | 402 |
404 std::unique_ptr<CPDF_Document> pDocument( | 403 auto pDocument = pdfium::MakeUnique<CPDF_Document>(std::move(pParser)); |
405 new CPDF_Document(std::move(pParser))); | |
406 CPDF_Parser::Error error = | 404 CPDF_Parser::Error error = |
407 pDocument->GetParser()->StartParse(pFileAccess, pDocument.get()); | 405 pDocument->GetParser()->StartParse(pFileAccess, pDocument.get()); |
408 if (error != CPDF_Parser::SUCCESS) { | 406 if (error != CPDF_Parser::SUCCESS) { |
409 ProcessParseError(error); | 407 ProcessParseError(error); |
410 return nullptr; | 408 return nullptr; |
411 } | 409 } |
412 return FPDFDocumentFromCPDFDocument(pDocument.release()); | 410 return FPDFDocumentFromCPDFDocument(pDocument.release()); |
413 } | 411 } |
414 | 412 |
415 #ifdef PDF_ENABLE_XFA | 413 #ifdef PDF_ENABLE_XFA |
(...skipping 755 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1171 if (!buffer) { | 1169 if (!buffer) { |
1172 *buflen = len; | 1170 *buflen = len; |
1173 } else if (len <= *buflen) { | 1171 } else if (len <= *buflen) { |
1174 memcpy(buffer, utf16Name.c_str(), len); | 1172 memcpy(buffer, utf16Name.c_str(), len); |
1175 *buflen = len; | 1173 *buflen = len; |
1176 } else { | 1174 } else { |
1177 *buflen = -1; | 1175 *buflen = -1; |
1178 } | 1176 } |
1179 return (FPDF_DEST)pDestObj; | 1177 return (FPDF_DEST)pDestObj; |
1180 } | 1178 } |
OLD | NEW |