mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-07-15 13:16:09 +08:00
61 lines
2.1 KiB
C++
61 lines
2.1 KiB
C++
#include "../PdfRenderer.h"
|
||
#include "../../PdfReader/PdfReader.h"
|
||
#include "../../DesktopEditor/common/File.h"
|
||
|
||
int main()
|
||
{
|
||
NSFonts::IApplicationFonts* pApplicationFonts = NSFonts::NSApplication::Create();
|
||
|
||
CPdfRenderer pdfWriter(pApplicationFonts, true);
|
||
pdfWriter.SetTempFolder(NSFile::GetProcessDirectory() + L"/wtemp");
|
||
|
||
PdfReader::CPdfReader* pReader = new PdfReader::CPdfReader(pApplicationFonts);
|
||
pReader->SetTempDirectory(NSFile::GetProcessDirectory() + L"/rtemp");
|
||
|
||
// PDFDoc монополизирует доступ к файлу для чтения и не отпускает пока не деструкнится.
|
||
// Для дозаписи файл нужно прочитать в память для ридера, а доступ к файлу отдать вритеру.
|
||
BYTE* pData;
|
||
DWORD nBytes;
|
||
NSFile::CFileBinary::ReadAllBytes(NSFile::GetProcessDirectory() + L"/test.pdf", &pData, nBytes);
|
||
if (!pData)
|
||
{
|
||
RELEASEOBJECT(pReader);
|
||
RELEASEOBJECT(pApplicationFonts);
|
||
return 1;
|
||
}
|
||
|
||
bool bResult = pReader->LoadFromMemory(pData, nBytes);
|
||
if (bResult)
|
||
{
|
||
/*
|
||
for (int i = 0, nPagesCount = pReader->GetPagesCount(); i < nPagesCount; ++i)
|
||
{
|
||
pdfWriter.NewPage();
|
||
pdfWriter.BeginCommand(c_nPageType);
|
||
|
||
double dPageDpiX, dPageDpiY;
|
||
double dWidth, dHeight;
|
||
pReader->GetPageInfo(i, &dWidth, &dHeight, &dPageDpiX, &dPageDpiY);
|
||
|
||
dWidth *= 25.4 / dPageDpiX;
|
||
dHeight *= 25.4 / dPageDpiY;
|
||
|
||
pdfWriter.put_Width(dWidth);
|
||
pdfWriter.put_Height(dHeight);
|
||
|
||
pReader->DrawPageOnRenderer(&pdfWriter, i, NULL);
|
||
|
||
pdfWriter.EndCommand(c_nPageType);
|
||
}
|
||
*/
|
||
}
|
||
|
||
// на какую страницу, писатель PdfWriter, файл в который дописать
|
||
pReader->AddToPage(0, &pdfWriter, NSFile::GetProcessDirectory() + L"/test.pdf");
|
||
//pdfWriter.SaveToFile(NSFile::GetProcessDirectory() + L"/res.pdf");
|
||
RELEASEOBJECT(pReader);
|
||
RELEASEOBJECT(pApplicationFonts);
|
||
RELEASEARRAYOBJECTS(pData);
|
||
return 0;
|
||
}
|