mvc open pdf in new tab : Extract images from pdf application software utility azure windows asp.net visual studio c32-part897

303/10/Monday 21h34
Apprenez à programmer en C / C++ ! - Le Site du Zéro
Page 321 sur 377
http://www.siteduzero.com/tuto-29-8-0-apprenez-a-programmer-en-c-c.html
avec mingw32, donc il fonctionnera sous Code::Blocks et Dev-C++.
Le fichier ZIP contient comme d'habitude un dossier include et un dossier lib. Mettez le contenu du dossier include dans
mingw32/include/SDL et le contenu du dossier lib dans mingw32/lib (c'est un fichier .lib et non un .a, mais comme je vous ai dit
exceptionnellement ce fichier marche avec le compilateur mingw). 
Vous devez copier le fichier SDL_ttf.h dans le dossier mingw32/include/SDL et non pas dans mingw32/include tout court. 
Attention aux erreurs !
Configurer un projet pour SDL_ttf
Eh bien c'est long hein ! 
Il nous reste une dernière petite chose à faire : configurer notre projet pour qu'il utilise bien SDL_ttf. Il va falloir modifier les options
du linker pour qu'il compile bien votre programme en utilisant la librairie SDL_ttf. 
Vous avez déjà appris à faire cette opération pour la SDL et pour SDL_image, je vais donc aller plus vite. 
Comme je travaille sous Code::Blocks, je vais vous donner la procédure avec cet IDE. Ce n'est pas bien différent avec les autres IDE : 
Rendez-vous dans le menu Project / Build Options
Dans l'onglet "Linker", cliquez sur le petit bouton "Add".
Indiquez où se trouve le fichier SDL_ttf.lib (chez moi c'est dans C:\Program Files\CodeBlocks\mingw32\lib)
On vous demande "Keep this as a relative path ?". Peu importe ce que vous répondez, ça marchera dans les deux cas. Je vous
conseille quand même de répondre Non, car sinon votre projet ne fonctionnera plus si vous le déplacez de dossier.
Validez en cliquant sur OK : c'est bon 
Mais... On n'a pas besoin de linker avec la librairie Freetype ?
Non, car comme je vous l'ai dit Freetype est incluse dans la DLL de SDL_ttf. Vous n'avez pas à vous préoccuper de Freetype, c'est SDL_ttf
qui gère ça maintenant 
La documentation
Maintenant que vous commencez à devenir des programmeurs aguerris, vous devriez vous demander immédiatement : "Mais où est la doc
?" 
Si vous ne vous êtes pas encore posé cette question, c'est que vous n'êtes pas encore un programmeur aguerri 
Bien sûr, vous vous dites : "Il y a toujours les tutos de tonton M@teo pour apprendre à s'en servir". C'est vrai : je vais vous apprendre à
vous en servir dans ce chapitre. Toutefois : 
Je ne vais pas faire un tuto pour toutes les librairies qui existent (même en y passant ma vie je n'aurais pas le temps). Il va donc
falloir tôt ou tard lire une doc, et mieux vaut commencer à apprendre à le faire maintenant !
D'autre part, une librairie est en général assez complexe et contient beaucoup de fonctions. Je ne peux pas présenter 
toutes ces
fonctions dans un tuto, ce serait bien trop long !
En clair : une doc c'est complet mais un peu dur à comprendre quand on n'a pas l'habitude, un tuto c'est pas complet mais ça aide bien 
à démarrer, surtout quand on débute 
Je vous conseille donc de mettre dans vos favoris l'adresse suivante : 
http://jcatki.no-ip.org/SDL_ttf/
C'est l'adresse de la doc de SDL_ttf. Elle est disponible en plusieurs formats : HTML en ligne, HTML zippé, PDF etc. 
Prenez la version qui vous arrange le plus 
Vous verrez que SDL_ttf est une librairie très simple : il y a peu de fonctions. 
Environ 40-50 fonctions, c'est peu (je vous dis pas combien il y en a dans la SDL ou dans des librairies plus complexes que nous 
Extract images from pdf - Select, copy, paste PDF images in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support PDF Image Extraction from a Page, a Region on a Page, and PDF Document
extract images from pdf; extract jpeg from pdf
Extract images from pdf - VB.NET PDF Image Extract Library: Select, copy, paste PDF images in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support PDF Image Extraction from a Page, a Region on a Page, and PDF Document
extract images from pdf online; extract pdf images
303/10/Monday 21h34
Apprenez à programmer en C / C++ ! - Le Site du Zéro
Page 322 sur 377
http://www.siteduzero.com/tuto-29-8-0-apprenez-a-programmer-en-c-c.html
étudierons plus tard comme QT !). Bref, ça devrait être signe (pour le programmeur aguerri que vous êtes 
) que cette librairie est
simple et que vous saurez la manier assez vite. 
Allez, il est temps d'apprendre à utiliser SDL_ttf maintenant 
Chargement de SDL_ttf
L'include
Avant toute chose, il faut ajouter l'include suivant en haut de votre fichier .c : 
Code : C
#include <SDL/SDL_ttf.h> 
Si vous avez des erreurs de compilation à ce stade, vérifiez si vous avez bien placé le fichier SDL_ttf.h dans le dossier
mingw32/include/SDL et non dans mingw32/include tout court. 
Démarrage de SDL_ttf
Tout comme la SDL, SDL_ttf a besoin d'être démarrée et arrêtée. 
Il y a donc des fonctions très similaires à la SDL : 
TTF_Init : démarre SDL_ttf.
TTF_Quit : arrête SDL_ttf.
Il n'est pas nécessaire que la SDL soit démarrée avant SDL_ttf.
Pour démarrer SDL_ttf (on dit aussi "initialiser"), on doit donc appeler la fonction TTF_Init(). 
Aucun paramètre n'est nécessaire. La fonction renvoie -1 s'il y a eu une erreur. 
Vous pouvez donc démarrer SDL_ttf très simplement comme ceci : 
Code : C
TTF_Init();
(dur de faire plus simple avouez 
Si vous voulez vérifier s'il y a une erreur et être ainsi plus rigoureux, utilisez ce code à la place : 
Code : C
if(TTF_Init() == -1)
{
fprintf(stderr, "Erreur d'initialisation de TTF_Init : %s\n", TTF_GetError());
exit(EXIT_FAILURE);
}
S'il y a eu une erreur au démarrage de SDL_ttf, un fichier stderr.txt sera créé (sous Windows du moins) contenant un message explicatif
de l'erreur. 
Pour ceux qui se poseraient la question : la fonction TTF_GetError() renvoie le dernier message d'erreur de SDL_ttf. C'est pour cela qu'on
l'utilise dans le fprintf. 
Arrêt de SDL_ttf
VB.NET PDF Text Extract Library: extract text content from PDF
Extract highlighted text out of PDF document. Image text extraction control provides text extraction from PDF images and image files.
how to extract images from pdf in acrobat; extract pictures pdf
C# PDF Text Extract Library: extract text content from PDF file in
Ability to extract highlighted text out of PDF document. Image text extraction control provides text extraction from PDF images and image files.
how to extract images from pdf; how to extract images from pdf files
303/10/Monday 21h34
Apprenez à programmer en C / C++ ! - Le Site du Zéro
Page 323 sur 377
http://www.siteduzero.com/tuto-29-8-0-apprenez-a-programmer-en-c-c.html
Arrêt de SDL_ttf
Pour arrêter SDL_ttf, on appelle TTF_Quit(). Là encore, pas de paramètre, pas de prise de tête 
Vous pouvez appeler TTF_Quit avant ou après SDL_Quit, peu importe. 
Code source (attention c'est du haut niveau !) : 
Code : C
TTF_Quit();
Ca va vous suivez toujours ? 
Chargement d'une police
Bon tout ça c'est bien beau mais c'est pas assez compliqué, c'est pas rigolo. 
Passons aux choses sérieuses si vous le voulez bien ! 
Maintenant que SDL_ttf est chargée, nous devons charger une police. 
Une fois que cela sera fait, nous pourrons enfin voir comment écrire du texte ! 
Là encore il y a 2 fonctions : 
TTF_OpenFont : ouvre un fichier de police (.ttf)
TTF_CloseFont : ferme une police ouverte.
TTF_OpenFont doit stocker son résultat dans une variable de type TTF_Font. Vous devez créer un pointeur de TTF_Font, comme ceci : 
Code : C
TTF_Font *police = NULL;
Le pointeur police contiendra donc les informations sur la police une fois qu'on l'aura ouverte. 
La fonction TTF_OpenFont prend 2 paramètres : 
Le nom du fichier de police (au format .ttf) à ouvrir. L'idéal c'est de mettre le fichier de police dans le répertoire de votre projet.
Exemple de fichier : arial.ttf (pour la police Arial).
La taille de la police à utiliser. Vous pouvez par exemple utiliser une taille de 22. 
Ce sont les mêmes tailles que celles que vous avez dans un logiciel de texte comme Word.
Où trouver des polices .ttf ?
Sur votre ordinateur 
Vous en avez déjà sur votre ordinateur ! 
Si vous êtes sous Windows, vous en trouverez déjà plein dans le dossier C:/Windows/Fonts 
Vous n'avez qu'à copier le fichier de police qui vous plaît dans le dossier de votre projet. 
Attention : si le nom contient des caractères "bizarres" comme des espaces, des accents ou même des majuscules, je vous conseille de le
renommer. Pour être sûr de n'avoir aucun problème, n'utilisez que des minuscules. 
Exemple de nom incorrect : TIMES NEW ROMAN.TTF 
Exemple de nom correct : times.ttf 
Sur Internet 
Autre possibilité : récupérer une police sur Internet. Vous trouverez pas mal de sites proposant des polices gratuites et originales à
télécharger. 
VB.NET PDF Page Extract Library: copy, paste, cut PDF pages in vb.
VB.NET: Extract All Images from PDF Document. This is an example that you can use it to extract all images from PDF document. ' Get page 3 from the document.
pdf image extractor online; pdf image extractor
C# Create PDF from images Library to convert Jpeg, png images to
C#.NET Project DLLs for Conversion from Images to PDF in C#.NET Program. C# Example: Convert More than Two Type Images to PDF in C#.NET Application.
extract images from pdf acrobat; extract text from pdf image
303/10/Monday 21h34
Apprenez à programmer en C / C++ ! - Le Site du Zéro
Page 324 sur 377
http://www.siteduzero.com/tuto-29-8-0-apprenez-a-programmer-en-c-c.html
Testez un coup de Google "polices", vous allez voir le résultat. Il y a de quoi faire ! 
Je connais de nombreux bons sites, et si personnellement je devais n'en retenir qu'un ce serait dafont.com . C'est bien classé, très bien
fourni et varié. Que demande le peuple 
Voici un aperçu de polices que vous pourrez trouver très facilement là-bas : 
C'est que du bonheur 
Bon, retour à la programmation 
Allez, on va utiliser la police Angelina elle me plaît bien 
On ouvre la police comme ceci : 
Code : C
police = TTF_OpenFont("angelina.ttf"65);
La police utilisée sera angelina.ttf. J'ai bien pris soin de mettre le fichier dans le dossier de mon projet et de le renommer pour qu'il soit
tout en minuscules. 
La police sera de taille 65. Ca paraît gros mais visiblement c'est une police qu'il faut écrire en gros pour qu'on puisse la voir 
Ce qui est très important, c'est que TTF_OpenFont stocke le résultat dans la variable police. Vous allez réutiliser cette variable tout à
l'heure en écrivant du texte. Elle permettra d'indiquer la police que vous voulez utiliser pour écrire du texte. 
Vous pouvez ouvrir plusieurs polices à la fois. 
Vous n'avez pas besoin d'ouvrir une même police à chaque fois que vous écrivez du texte : ouvrez la police juste une fois au
début du programme et fermez-la à la fin.
Fermer la police 
Il faut penser à fermer chaque police ouverte 
avant l'appel à TTF_Quit(). 
Dans mon cas, ça donnera donc le code suivant : 
Code : C
TTF_CloseFont(police)/* Doit être avant TTF_Quit() */
TTF_Quit();
Et voilà l'travail 
Code source pour résumer
On résume tout ce qu'on vient d'apprendre sur le "chargement" de SDL_ttf à l'aide d'un petit code source complet histoire de se situer.
C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net
Page: Extract, Copy and Paste PDF Pages. Easy to Use C# Code to Extract PDF Pages, Copy Pages from One PDF File and Paste into Others in C#.NET Program.
pdf image text extractor; online pdf image extractor
C# PDF insert image Library: insert images into PDF in C#.net, ASP
Powerful .NET PDF image edit control, enable users to insert vector images to PDF file. Merge several images into PDF. Insert images into PDF form field.
extract photos pdf; how to extract a picture from a pdf
303/10/Monday 21h34
Apprenez à programmer en C / C++ ! - Le Site du Zéro
Page 325 sur 377
http://www.siteduzero.com/tuto-29-8-0-apprenez-a-programmer-en-c-c.html
Les lignes intéressantes sont commentées : 
Code : C
#include <stdlib.h>
#include <stdio.h>
#include <SDL/SDL.h>
#include <SDL/SDL_ttf.h> /* Ne pas oublier l'include ! */
int main(int argc, char *argv[])
{
SDL_Surface *ecran = NULL;
SDL_Event event;
TTF_Font *police = NULL; /* Stockera les informations de police */
int continuer = 1;
SDL_Init(SDL_INIT_VIDEO);
TTF_Init()/* Initialisation (peut être avant ou après SDL_Init) */
ecran = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE | SDL_DOUBLEBUF);
SDL_WM_SetCaption("Gestion du texte avec SDL_ttf", NULL);
police = TTF_OpenFont("angelina.ttf"65)/* Ouverture de la police au début */
while (continuer)
{
SDL_WaitEvent(&event);
switch(event.type)
{
case SDL_QUIT:
continuer = 0;
break;
}
SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255, 255, 255));
SDL_Flip(ecran);
}
TTF_CloseFont(police)/* Fermeture de la police avant TTF_Quit */
TTF_Quit()/* Arrêt de SDL_ttf (peut être avant ou après SDL_Quit, peu importe) */
SDL_Quit();
return EXIT_SUCCESS;
}
Les différentes méthodes d'écriture
Maintenant que SDL_ttf est chargée et qu'on a une variable police chargée elle aussi, plus rien ni personne ne nous empêchera d'écrire
du texte dans notre fenêtre SDL ! 
Bon, écrire du texte c'est bien, mais avec quelle fonction ? 
J'ai été un peu surpris la première fois que j'ai vu la doc de SDL_ttf : 12 fonctions pour écrire du texte, ça en fait du choix ! 
En fait, il y a 3 façons différentes pour SDL_ttf de dessiner du texte : 
Solid : c'est la technique la plus rapide. Le texte sera rapidement écrit dans une SDL_Surface. La surface sera transparente mais
n'utilisera qu'un niveau de transparence (on a appris ça il y a quelques chapitres). C'est pratique, mais le texte ne sera pas très
joli, pas très "arrondi" surtout s'il est écrit gros. Utilisez cette technique lorsque vous devez souvent changer le texte (par exemple
pour afficher le temps qui s'écoule ou le nombre de FPS d'un jeu).
Shaded : cette fois, le texte sera joli. Les lettres seront antialiasées, le texte apparaîtra plus lisse. Il y a un défaut par contre : le
fond doit être d'une couleur unie. Pas moyen de rendre le fond de la SDL_Surface transparente en Shaded.
Blended : c'est la technique la plus puissante, mais elle est lente. En fait, elle met autant de temps que Shaded à créer la
SDL_Surface. La seule différence avec Shaded, c'est que vous pouvez blitter le texte sur une image et la transparence sera
respectée (contrairement à Shaded qui imposait un fond uni). Attention : le calcul du blit sera plus lent que pour Shaded. 
C'est là que la différence de lenteur avec Shaded se fait : au moment du blit et non au moment de la création de la SDL_Surface.
C# PDF Convert to Images SDK: Convert PDF to png, gif images in C#
Professional .NET library and Visual C# source code for creating high resolution images from PDF in C#.NET class. Cut and paste any areas in PDF pages to images.
extract jpg from pdf; extract color image from pdf in c#
VB.NET Create PDF from images Library to convert Jpeg, png images
VB.NET Guide for Converting Raster Images to PDF File Using VB.NET Sample Code. VB.NET Example of More than Two Images to PDF Conversion. This VB.
extract pictures from pdf; pdf extract images
303/10/Monday 21h34
Apprenez à programmer en C / C++ ! - Le Site du Zéro
Page 326 sur 377
http://www.siteduzero.com/tuto-29-8-0-apprenez-a-programmer-en-c-c.html
J'ai mis un peu de temps à m'habituer à ces 3 types d'écriture du texte. 
Pour vous aider à vous faire une idée, voici des screenshots d'un même texte écrit avec ces différentes techniques : 
Solid 
Mode d'écriture très rapide mais pas très beau (texte non lissé). 
Shaded 
Mode d'écriture lent mais plus joli car antialisé. Fond obligatoirement uni. 
303/10/Monday 21h34
Apprenez à programmer en C / C++ ! - Le Site du Zéro
Page 327 sur 377
http://www.siteduzero.com/tuto-29-8-0-apprenez-a-programmer-en-c-c.html
Blended 
Mode d'écriture lent (et blit lent) mais très beau car antialisé et fonctionne sur un fond non uni. 
En résumé : 
Si vous avez un texte qui change souvent, comme un compte à rebours, utilisez Solid.
Si votre texte ne change pas très souvent et que vous voulez blitter votre texte sur un fond uni, utilisez Shaded.
Si votre texte ne change pas très souvent mais que vous voulez blitter sur un fond non uni (comme une image), utilisez Blended.
Voilà, vous devriez déjà être un peu plus familier avec ces 3 types d'écriture de SDL_ttf. 
Je vous avais dit qu'il y avait 12 fonctions en tout. 
En effet, pour chacun de ces 3 types d'écriture, il y a 4 fonctions. Chaque fonction écrit le texte à l'aide d'un charset différent, c'est-à-
dire d'une palette de caractères différentes. Il y en a 4 : 
Latin1
UTF8
Unicode
Unicode Glyph
L'idéal est d'utiliser l'Unicode car c'est un charset gérant la quasi-totalité des caractères existant sur Terre (eh ouais ça en fait avec
toutes les langues 
). 
Toutefois, utiliser l'Unicode n'est pas toujours forcément simple (un caractère prend plus que la taille d'un char en mémoire), nous ne
verrons pas comment l'utiliser ici. 
A priori, si votre programme est écrit en français le mode Latin1 suffit amplement, vous pouvez vous contenter de celui-là 
Les 3 fonctions utilisant le charset Latin1 sont : 
TTF_RenderText_Solid
TTF_RenderText_Shaded
TTF_RenderText_Blended
Vous savez tout, ou presque 
Nous allons voir comment écrire un texte en Blended (c'est le plus joli 
Exemple d'écriture de texte en Blended
Pour spécifier une couleur à SDL_ttf, on ne va pas utiliser le même type qu'avec la SDL (un Uint32 créé à l'aide de la fonction
SDL_MapRGB). 
303/10/Monday 21h34
Apprenez à programmer en C / C++ ! - Le Site du Zéro
Page 328 sur 377
http://www.siteduzero.com/tuto-29-8-0-apprenez-a-programmer-en-c-c.html
Au contraire, nous allons utiliser une structure toute prête de la SDL : SDL_Color. Cette structure comporte 3 sous-variables : la quantité
de rouge, de vert et de bleu. 
Si vous voulez créer une variable couleurNoire, vous devrez donc écrire : 
Code : C
SDL_Color couleurNoire = {0, 0, 0};
Attention à ne pas confondre avec les couleurs qu'utilise habituellement la SDL ! 
La SDL utilise des Uint32 créés à l'aide de SDL_MapRGB. 
SDL_ttf utilise des SDL_Color.
On va écrire un texte en noir dans une SDL_Surface texte : 
Code : C
texte = TTF_RenderText_Blended(police, "Salut les Zér0s !", couleurNoire);
Vous voyez dans l'ordre les paramètres à envoyer : la police (de type TTF_Font), le texte à écrire, et enfin la couleur (de type
SDL_Color). 
Le résultat est stocké dans une SDL_Surface. SDL_ttf calcule automatiquement la taille nécessaire à donner à la surface en fonction de la
taille du texte et du nombre de caractères que vous avez voulu écrire. 
Comme toute SDL_Surface, notre pointeur texte contient les sous-variables w et h indiquant respectivement sa largeur et sa
hauteur. 
C'est donc un bon moyen de connaître les dimensions du texte une fois que celui-ci a été écrit dans la SDL_Surface. Vous
n'aurez qu'à faire : 
Code : C
texte->w /* Donne la largeur */
texte->h /* Donne la hauteur */
Code complet d'écriture de texte
Voilà vous savez tout 
Voici un code complet montrant l'écriture de texte en mode Blended : 
Code : C
#include <stdlib.h>
#include <stdio.h>
#include <SDL/SDL.h>
#include <SDL/SDL_image.h>
#include <SDL/SDL_ttf.h>
int main(int argc, char *argv[])
{
SDL_Surface *ecran = NULL, *texte = NULL, *fond = NULL;
SDL_Rect position;
SDL_Event event;
TTF_Font *police = NULL;
SDL_Color couleurNoire = {000};
int continuer = 1;
SDL_Init(SDL_INIT_VIDEO);
TTF_Init();
ecran = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE | SDL_DOUBLEBUF);
SDL_WM_SetCaption("Gestion du texte avec SDL_ttf", NULL);
fond = IMG_Load("moraira.jpg");
303/10/Monday 21h34
Apprenez à programmer en C / C++ ! - Le Site du Zéro
Page 329 sur 377
http://www.siteduzero.com/tuto-29-8-0-apprenez-a-programmer-en-c-c.html
/* Chargement de la police */
police = TTF_OpenFont("angelina.ttf"65);
/* Ecriture du texte dans la SDL_Surface "texte" en mode Blended (optimal) */
texte = TTF_RenderText_Blended(police, "Salut les Zér0s !", couleurNoire);
while (continuer)
{
SDL_WaitEvent(&event);
switch(event.type)
{
case SDL_QUIT:
continuer = 0;
break;
}
SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255, 255, 255));
position.x = 0;
position.y = 0;
SDL_BlitSurface(fond, NULL, ecran, &position)/* Blit du fond */
position.x = 60;
position.y = 370;
SDL_BlitSurface(texte, NULL, ecran, &position)/* Blit du texte par-dessus */
SDL_Flip(ecran);
}
TTF_CloseFont(police);
TTF_Quit();
SDL_FreeSurface(texte);
SDL_Quit();
return EXIT_SUCCESS;
}
Et le résultat : 
303/10/Monday 21h34
Apprenez à programmer en C / C++ ! - Le Site du Zéro
Page 330 sur 377
http://www.siteduzero.com/tuto-29-8-0-apprenez-a-programmer-en-c-c.html
Sympa n'est-ce pas ? 
Si vous voulez changer de mode d'écriture pour tester, il n'y a qu'une ligne à changer : celle créant la surface (avec l'appel à la fonction
TTF_RenderText_Blended). 
La fonction TTF_RenderText_Shaded prend un 4ème paramètre contrairement aux 2 autres. Ce dernier paramètre est la
couleur de fond à utiliser. Vous devrez donc créer une autre variable de type SDL_Color pour indiquer une couleur de fond (par
exemple le blanc).
Attributs d'écriture du texte
Il est possible aussi de spécifier des attributs d'écriture, comme gras, italique et souligné. 
Il faut d'abord que la police soit chargée. Vous devriez donc avoir une variable police valide. 
Vous pouvez alors faire appel à la fonction TTF_SetFontStyle qui va modifier la police pour qu'elle soit en gras, italique ou souligné
selon vos désirs. 
La fonction prend 2 paramètres : 
La police à modifier
Une combinaison de flags pour indiquer le style à donner : gras, italique ou souligné.
Pour les flags, vous devez utiliser ces constantes : 
TTF_STYLE_NORMAL : normal.
TTF_STYLE_BOLD : gras.
TTF_STYLE_ITALIC : italique.
Documents you may be interested
Documents you may be interested