CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - [BCB] Biblioteka LibHaru

[BCB] Biblioteka LibHaru

dział ogólny

[BCB] Biblioteka LibHaru

Nowy postprzez Raffallo » środa, 15 listopada 2017, 00:33

Witam!
Od jakiegoś czasu uczę się samodzielnie programowania w C++, wcześniej pracowałem na C::B, a teraz przerzuciłem się a Borland C++ Builder 6 (tak, wiem, ze stare itp).
Pisze program, który jest mi potrzeby na uczelnię i muszę w nim mieć możliwość zapisywania różnmych danych/zdjęć do pliku PDF. Tu niestety pojawia się problem. Do tego celu wybrałem bibliotekę LibHaru, ale po przeszukaniu różnych wątków, dokumentacji, pobierania różnych wersji i próby kompilacji (pierwszy raz kompilowałem bibliotekę, tzn próbowałem :mrgreen: ) nie udało mi się stworzyc poprawnego prostego programu zapisującego chociażby pustego pdf. Problem polega głównie na kompilacji i linkowaniu tej biblioteki, bo wydaje mi się że z pomocą dokumentacji stworzenie pdf juz jakoś pójdzie. Stąd moja prośba, czy mógłby ktoś mi skompilować bibliotekę pod BCB 6 i wysłać wszystko o co powinienem podlinkować ? Ewentualnie byłbym mega wdzięczny gdyby ktoś zróbił prosty programik robiący pusty pdf, na podstawie dokumentacji: http://libharu.sourceforge.net/how_to_use.html
Znacznie by mi to pomogło!
Avatar użytkownika
Raffallo
Bladawiec
Bladawiec
 
Posty: 7
Dołączył(a): środa, 22 marca 2017, 18:43
Podziękował : 3
Otrzymał podziękowań: 0
System operacyjny: Win 7
Kompilator: Borland C++ Builder 6
Gadu Gadu: 0
    Windows 7Chrome

Re: [BCB] Biblioteka LibHaru

Nowy postprzez polymorphism » środa, 15 listopada 2017, 11:48

Przecież tam na tej stronie są wersje już skompilowane, nawet dla bcc32. Próbowałeś je?
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows 7Firefox

Re: [BCB] Biblioteka LibHaru

Nowy postprzez Raffallo » środa, 15 listopada 2017, 17:02

Jak załączam 3 biblioteki z folderu win32/bcc32 i wszystkiego z include, odpalam program to wyskakuje mi błąd "[C++ Error] Unit1.cpp(5): E2209 Unable to open include file 'hpdf.h'". :mrgreen:
Program pisze tak jak jest w dokumentacji napisane, ale na samym #include "hpdf.h" wywala :/ :mrgreen:
Poza tym w dalszych błędach widać jak by w ogóle nie wykrywało biblioteki, bo nie rozpoznaje funkcji :(
Avatar użytkownika
Raffallo
Bladawiec
Bladawiec
 
Posty: 7
Dołączył(a): środa, 22 marca 2017, 18:43
Podziękował : 3
Otrzymał podziękowań: 0
System operacyjny: Win 7
Kompilator: Borland C++ Builder 6
Gadu Gadu: 0
    Windows 7Chrome

Re: [BCB] Biblioteka LibHaru

Nowy postprzez polymorphism » środa, 15 listopada 2017, 19:08

ale na samym #include "hpdf.h" wywala :/

A gdzie te nagłówki wrzuciłeś?
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows 7Firefox

Re: [BCB] Biblioteka LibHaru

Nowy postprzez Raffallo » środa, 15 listopada 2017, 19:25

na górze pliku cpp
Avatar użytkownika
Raffallo
Bladawiec
Bladawiec
 
Posty: 7
Dołączył(a): środa, 22 marca 2017, 18:43
Podziękował : 3
Otrzymał podziękowań: 0
System operacyjny: Win 7
Kompilator: Borland C++ Builder 6
Gadu Gadu: 0
    Windows 7Chrome

Re: [BCB] Biblioteka LibHaru

Nowy postprzez polymorphism » środa, 15 listopada 2017, 19:34

Nie o to pytałem ;) Chodzi mi o to, do którego katalogu te pliki wrzuciłeś.
C++ Reference - opis wszystkich klas STL-a i funkcji C.

Za ten post autor polymorphism otrzymał podziękowanie od:
Raffallo
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows 7Firefox

Re: [BCB] Biblioteka LibHaru

Nowy postprzez Raffallo » środa, 15 listopada 2017, 23:15

O matko, ale głupotę zrobiłem :P Dzięki za wskazanie problemu :)
Jednakże teraz występują inne problemy :mrgreen:
Taki mam kod w pliku *.cpp:
Kod: Zaznacz cały
#include <vcl.h>
#pragma hdrstop
#include "include/hpdf.h"
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
     : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
HPDF_Doc pdf;
pdf = HPDF_New (NULL, NULL);
    HPDF_Free (pdf);

}
//---------------------------------------------------------------------------


Niestety wyskakują 2 błędy:
Kod: Zaznacz cały
[Linker Error] Unresolved external '_HPDF_New' referenced from C:\USERS\RAFFALLO\DESKTOP\PROBA LIBHARU\UNIT1.OBJ
[Linker Error] Unresolved external '_HPDF_Free' referenced from C:\USERS\RAFFALLO\DESKTOP\PROBA LIBHARU\UNIT1.OBJ


Dodatkowo kod z dokumentacji wyglądał tak:
Kod: Zaznacz cały
#include "hpdf.h"

HPDF_Doc pdf;

pdf = HPDF_New (error_handler, NULL);
if (!pdf) {
    printf ("ERROR: cannot create pdf object.\n");
    return 1;
}

if (setjmp(env)) {
    HPDF_Free (pdf);
    return 1;
}

Ale go przerobiłem tak jak wyżej, bo nie wiem jak działa setjmp(env) i do testów nie zrobiłem żadnego error_handler.

Teraz pytanie, czy te błędy wyskakuję przez błędnie przerobiony kod + ewentualny brak kolejnych linijek kodu z dokumentacji, czy zrobiłem jakaś kolejna inną głupotę?

Edit: dopisanie kolejnych linijek kodu z dokumentacji powoduje jedynie zwiększenie errorów z uresolved itp.
Avatar użytkownika
Raffallo
Bladawiec
Bladawiec
 
Posty: 7
Dołączył(a): środa, 22 marca 2017, 18:43
Podziękował : 3
Otrzymał podziękowań: 0
System operacyjny: Win 7
Kompilator: Borland C++ Builder 6
Gadu Gadu: 0
    Windows 7Chrome

Re: [BCB] Biblioteka LibHaru

Nowy postprzez polymorphism » czwartek, 16 listopada 2017, 00:57

Dodałeś do projektu (opcją Add to project) bibliotekę .lib?
C++ Reference - opis wszystkich klas STL-a i funkcji C.

Za ten post autor polymorphism otrzymał podziękowanie od:
Raffallo
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows 7Firefox

Re: [BCB] Biblioteka LibHaru

Nowy postprzez Raffallo » czwartek, 16 listopada 2017, 09:54

libpng.lib, zlib.lib i hpdf.rc + wrzuciłem hpdf.h

Edit: wrzuciłem plik hpdf.lib i program się odpala, tylko nie tworzy pustego pdf przy kodzie:
KOD cpp:     UKRYJ  
void __fastcall TForm1::Button1Click(TObject *Sender)
{
HPDF_Doc pdf;
pdf = HPDF_New (NULL, NULL);
    HPDF_Free (pdf);
    HPDF_Page page_1;

page_1 = HPDF_AddPage (pdf);
HPDF_Page page_0;

page_0 = HPDF_InsertPage (pdf, page_1);

HPDF_Page_SetSize (page_1, HPDF_PAGE_SIZE_B5, HPDF_PAGE_LANDSCAPE);
HPDF_SaveToFile (pdf, "test.pdf");

}
Ostatnio edytowano czwartek, 16 listopada 2017, 11:30 przez polymorphism, łącznie edytowano 1 raz
Powód: Używaj znaczników CPP
Avatar użytkownika
Raffallo
Bladawiec
Bladawiec
 
Posty: 7
Dołączył(a): środa, 22 marca 2017, 18:43
Podziękował : 3
Otrzymał podziękowań: 0
System operacyjny: Win 7
Kompilator: Borland C++ Builder 6
Gadu Gadu: 0
    Windows 7Chrome

Re: [BCB] Biblioteka LibHaru

Nowy postprzez polymorphism » czwartek, 16 listopada 2017, 13:27

KOD cpp:     UKRYJ  
pdf = HPDF_New (NULL, NULL);
HPDF_Free (pdf);

Radosna twórczość Cię dopadła, widzę.

To sprawdź:
KOD cpp:     UKRYJ  
        std::string text = "Hello World!";

        HPDF_Doc pdf = HPDF_New (NULL, NULL);
        HPDF_Page page_0 = HPDF_AddPage (pdf);
        HPDF_Page_SetSize (page_0, HPDF_PAGE_SIZE_B5, HPDF_PAGE_LANDSCAPE);
       
        HPDF_Font font = HPDF_GetFont (pdf, "Helvetica", NULL);
        HPDF_Page_SetFontAndSize (page_0, font, 24);
        HPDF_REAL width = HPDF_Page_TextWidth (page_0, text.c_str());

        HPDF_Page_BeginText (page_0);
        HPDF_Page_TextOut (page_0, (HPDF_Page_GetWidth(page_0) - width) / 2, HPDF_Page_GetHeight (page_0) - 50, text.c_str());
        HPDF_Page_EndText (page_0);

        HPDF_SaveToFile (pdf, "test.pdf");
        HPDF_Free (pdf);

U mnie na g++ działa.
C++ Reference - opis wszystkich klas STL-a i funkcji C.

Za ten post autor polymorphism otrzymał podziękowanie od:
Raffallo
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows 7Firefox

Re: [BCB] Biblioteka LibHaru

Nowy postprzez Raffallo » czwartek, 16 listopada 2017, 18:34

rzeczywiście inicjowanie pdf, a później od razu "zamykanie" go w niczym nie pomaga przy tworzeniu pdf :P
Problem (braku moich umiejętności i wiedzy) został rozwiązany i mam nadzieję, ze dalej sobię poradzę ze zdefiniowaniem zawartości pdf, która będzie raczej złożona i zależna od zmiennych :)

Edit: Mądrego to nawet dobrze posłuchać! :) Dzięki wielkie za pomoc i cierpliwość :)
Avatar użytkownika
Raffallo
Bladawiec
Bladawiec
 
Posty: 7
Dołączył(a): środa, 22 marca 2017, 18:43
Podziękował : 3
Otrzymał podziękowań: 0
System operacyjny: Win 7
Kompilator: Borland C++ Builder 6
Gadu Gadu: 0
    Windows 7Chrome

Re: [BCB] Biblioteka LibHaru

Nowy postprzez Arnold_S » poniedziałek, 2 kwietnia 2018, 16:33

Witam!
Zastanawiam się nad skorzystaniem z tej biblioteki w moim programie. Przeczytałem chyba wszystko o tej bibliotece i albo mam kurzą ślepotę albo po prostu ta biblioteka nie posiada metody, która ładuje plik PNG z "resource file". Trochę mi nie na rękę zapisywanie z resourca do pliku w formacie PNG aby go potem wczytywać do programu, w celu zapisania do PDFa.
Czy jest może jakieś w miarę proste rozwiązanie, umożliwiające skorzystanie z tej biblioteki (libharu), w celu pobrania z pliku.RES istniejącego tam obrazka PNG, a następnie zapisanie go na dysku w formacie PDF?
Avatar użytkownika
Arnold_S
Homos antropiczny
Homos antropiczny
 
Posty: 58
Dołączył(a): niedziela, 12 czerwca 2016, 23:22
Podziękował : 15
Otrzymał podziękowań: 0
System operacyjny: Win7 64b
Kompilator: C++ Builder 6, Rad Studio XE2
Gadu Gadu: 0
    Windows 7Firefox

Re: [BCB] Biblioteka LibHaru

Nowy postprzez polymorphism » wtorek, 3 kwietnia 2018, 11:17

Z tego, co widać w dokumentacji, jedyna funkcja, która może czytać grafiki z pamięci to HPDF_LoadRawImageFromMem. Więc w przypadku tej biblioteki innej opcji nie masz - musisz czytać z pliku.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows 7Firefox

Re: [BCB] Biblioteka LibHaru

Nowy postprzez Arnold_S » wtorek, 3 kwietnia 2018, 23:04

KOD cpp:     UKRYJ  
HPDF_Image HPDF_LoadPngImageFromMem(HPDF_Doc pdf, const HPDF_BYTE *bufor, HPDF_UINT rozmiar_bufora);


HPDF_BYTE *bufor - wskaźnik na bufor, co mam rozumieć przez "bufor"? Czy to nie może być wskaźnik na fragment pamięci, który zajmuje mój plik PDF, w pliku resource.RES?
Avatar użytkownika
Arnold_S
Homos antropiczny
Homos antropiczny
 
Posty: 58
Dołączył(a): niedziela, 12 czerwca 2016, 23:22
Podziękował : 15
Otrzymał podziękowań: 0
System operacyjny: Win7 64b
Kompilator: C++ Builder 6, Rad Studio XE2
Gadu Gadu: 0
    Windows 7Firefox

Re: [BCB] Biblioteka LibHaru

Nowy postprzez polymorphism » wtorek, 3 kwietnia 2018, 23:40

bufor to wskaźnik na fragment pamięci, w której znajduje się grafika PNG.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows 7Firefox


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 43 gości

cron