diff --git a/PdfFile/PdfFile.cpp b/PdfFile/PdfFile.cpp index 2b9ddb93ea..bf26ea31e6 100644 --- a/PdfFile/PdfFile.cpp +++ b/PdfFile/PdfFile.cpp @@ -81,6 +81,11 @@ CPdfRenderer* CPdfFile::GetWriter() return m_pInternal->pWriter; } +NSFonts::IFontManager* CPdfFile::GetFontManager() +{ + return m_pInternal->pReader->GetFontManager(); +} + void CPdfFile::SetTempDirectory(const std::wstring& wsPath) { m_pInternal->pWriter->SetTempFolder (wsPath); diff --git a/PdfFile/PdfFile.h b/PdfFile/PdfFile.h index 74dda7ba55..c180e3fbf3 100644 --- a/PdfFile/PdfFile.h +++ b/PdfFile/PdfFile.h @@ -22,6 +22,7 @@ public: PdfReader::CPdfReader* GetReader(); CPdfRenderer* GetWriter(); + NSFonts::IFontManager* GetFontManager(); void SetTempDirectory(const std::wstring& wsPath); bool LoadFromFile(const std::wstring& wsSrcFile, const std::wstring& wsPassword = L""); diff --git a/PdfFile/test/test.cpp b/PdfFile/test/test.cpp index 7c48a46adc..8a5fde9036 100644 --- a/PdfFile/test/test.cpp +++ b/PdfFile/test/test.cpp @@ -15,11 +15,15 @@ int main() NSFonts::IApplicationFonts* pApplicationFonts = oWorker.Check(); - CPdfFile pdfFile(pApplicationFonts); - pdfFile.SetTempDirectory(NSFile::GetProcessDirectory() + L"/pdftemp"); - std::wstring wsSrcFile = NSFile::GetProcessDirectory() + L"/test.pdf"; std::wstring wsDstFile = NSFile::GetProcessDirectory() + L"/test2.pdf"; + std::wstring wsTempDir = NSFile::GetProcessDirectory() + L"/pdftemp"; + + if (!NSDirectory::Exists(wsTempDir)) + NSDirectory::CreateDirectory(wsTempDir); + + CPdfFile pdfFile(pApplicationFonts); + pdfFile.SetTempDirectory(wsTempDir); std::wstring wsPassword; bool bResult = pdfFile.LoadFromFile(wsSrcFile); @@ -40,6 +44,30 @@ int main() pCertificate = NSCertificate::FromFiles(wsPrivateKeyFile, sPrivateFilePassword, wsCertificateFile, sCertificateFilePassword); } + if (false) + { + double dPageDpiX, dPageDpiY, dWidth, dHeight; + pdfFile.GetPageInfo(0, &dWidth, &dHeight, &dPageDpiX, &dPageDpiY); + pdfFile.ConvertToRaster(0, NSFile::GetProcessDirectory() + L"/res.png", 4, dWidth * dPageDpiX / 25.4, dHeight * dPageDpiY / 25.4, true, pdfFile.GetFontManager()); + + RELEASEINTERFACE(pApplicationFonts); + RELEASEOBJECT(pCertificate); + return 0; + } + + if (false) + { + for (int i = 0; i < pdfFile.GetPagesCount(); i++) + { + pdfFile.DrawPageOnRenderer(pdfFile.GetWriter(), i, NULL); + } + pdfFile.SaveToFile(wsDstFile); + + RELEASEINTERFACE(pApplicationFonts); + RELEASEOBJECT(pCertificate); + return 0; + } + if (bResult && pdfFile.EditPdf(wsDstFile)) { if (false && pCertificate)