Esempio n. 1
0
int CHaruPdf::getBin( sqbind::CSqBinary *pBin )
{_STT();

	// Sanity checks
	if ( !m_pdf || !pBin )
		return 0;

	// Reset stream
//	HPDF_ResetStream( m_pdf );
		
	// Save to file
	if ( HPDF_OK != HPDF_SaveToStream( m_pdf ) )
		return 0;

	// How large is the document?
	HPDF_UINT32 uSize = HPDF_GetStreamSize( m_pdf );
	if ( !uSize )
		return 0;

	// Allocate memory for document
	if ( uSize > pBin->Size() )
		if ( !pBin->Allocate( uSize ) )
			return 0;

	pBin->setUsed( 0 );

	// Copy the document
	if ( HPDF_OK != HPDF_ReadFromStream( m_pdf, (HPDF_BYTE*)pBin->_Ptr(), &uSize ) )
		return 0;

	pBin->setUsed( uSize );

	return 1;
}
Esempio n. 2
0
  virtual void handleRequest(const Wt::Http::Request& request,
                             Wt::Http::Response& response)
  {
    response.setMimeType("application/pdf");

    HPDF_Doc pdf = HPDF_New(error_handler, 0);
    HPDF_UseUTFEncodings(pdf);

    renderReport(pdf);

    HPDF_SaveToStream(pdf);
    unsigned int size = HPDF_GetStreamSize(pdf);
    HPDF_BYTE *buf = new HPDF_BYTE[size];
    HPDF_ReadFromStream (pdf, buf, &size);
    HPDF_Free(pdf);
    response.out().write((char*)buf, size);
    delete[] buf;
  }
Esempio n. 3
0
void WPdfImage::handleRequest(const Http::Request& request,
			      Http::Response& response)
{
  HPDF_SaveToStream(pdf_);

  HPDF_ResetStream(pdf_);

  response.setMimeType("application/pdf");

  for (;;) {
    HPDF_BYTE buf[4096];
    HPDF_UINT32 siz = 4096;
    HPDF_ReadFromStream (pdf_, buf, &siz);
 
    if (siz == 0)
        break;

    response.out().write((const char *)buf, siz);
  }
}