Ajouter des tampons d'image dans un PDF par programmation
Ajouter un tampon d’image dans un fichier PDF
Vous pouvez utiliser la classe ImageStamp pour ajouter un tampon d’image à un fichier PDF. La classe ImageStamp fournit les propriétés nécessaires pour créer un tampon basé sur une image, telles que la hauteur, la largeur, l’opacité, etc.
Pour ajouter un tampon d’image :
- Créez un objet Document et un objet ImageStamp en utilisant les propriétés requises.
- Appelez la méthode AddStamp de la classe Page pour ajouter le tampon au PDF.
Le code suivant montre comment ajouter un tampon d’image dans le fichier PDF.
using namespace System;
using namespace Aspose::Pdf;
using namespace Aspose::Pdf::Text;
void AddImageStampToPDFFile()
{
String _dataDir("C:\\Samples\\");
// Chaîne pour le nom du fichier d'entrée
String inputFileName("AddImageStamp.pdf");
String outputFileName("AddImageStamp_out.pdf");
// Ouvrir le document
auto document = MakeObject<Document>(_dataDir + inputFileName);
// Créer un tampon d'image
auto imageStamp = MakeObject<ImageStamp>(_dataDir + u"aspose-logo.jpg");
imageStamp->set_Background(true);
imageStamp->set_XIndent(100);
imageStamp->set_YIndent(100);
imageStamp->set_Height(48);
imageStamp->set_Width(225);
imageStamp->set_Rotate(Rotation::on270);
imageStamp->set_Opacity(0.5);
// Ajouter le tampon à une page particulière
document->get_Pages()->idx_get(1)->AddStamp(imageStamp);
// Enregistrer le document de sortie
document->Save(_dataDir + outputFileName);
}
Contrôler la qualité de l’image lors de l’ajout de tampon
Lors de l’ajout d’une image en tant qu’objet tampon, vous pouvez contrôler la qualité de l’image. La propriété Quality de la classe ImageStamp est utilisée à cette fin. Elle indique la qualité de l’image en pourcentage (les valeurs valides sont 0..100).
void ControlImageQualityWhenAddingStamp() {
String _dataDir("C:\\Samples\\");
// Chaîne pour le nom du fichier d'entrée
String inputFileName("AddImageStamp.pdf");
String outputFileName("ControlImageQuality_out.pdf");
// Ouvrir le document
auto document = MakeObject<Document>(_dataDir + inputFileName);
// Créer un tampon d'image
auto imageStamp = MakeObject<ImageStamp>(_dataDir + u"aspose-logo.jpg");
imageStamp->set_Quality(10);
document->get_Pages()->idx_get(1)->AddStamp(imageStamp);
document->Save(_dataDir + u"ControlImageQuality_out.pdf");
}
Tampon d’image comme arrière-plan dans une boîte flottante
L’API Aspose.PDF vous permet d’ajouter un tampon d’image comme arrière-plan dans une boîte flottante. La propriété BackgroundImage de la classe FloatingBox peut être utilisée pour définir l’image de fond d’un bloc flottant comme montré dans l’exemple de code suivant.
void ImageStampAsBackgroundInFloatingBox() {
String _dataDir("C:\\Samples\\");
// Chaîne pour le nom du fichier d'entrée
String inputFileName("AddImageStamp.pdf");
String outputFileName("AddImageStampAsBackgroundInFloatingBox_out.pdf");
// Instancier l'objet Document
auto document = MakeObject<Document>();
// Ajouter une page au document PDF
auto page = document->get_Pages()->Add();
// Créer l'objet FloatingBox
auto aBox = MakeObject<FloatingBox>(200, 100);
// Définir la position gauche pour le FloatingBox
aBox->set_Left(40);
// Définir la position supérieure pour le FloatingBox
aBox->set_Top(80);
// Définir l'alignement horizontal pour le FloatingBox
aBox->set_HorizontalAlignment(HorizontalAlignment::Center);
// Ajouter un fragment de texte à la collection de paragraphes du FloatingBox
aBox->get_Paragraphs()->Add(MakeObject<TextFragment>(u"main text"));
// Définir la bordure pour le FloatingBox
aBox->set_Border(MakeObject<BorderInfo>(BorderSide::All, Color::get_Red()));
// Ajouter l'image de fond
auto image = MakeObject<Image>();
image->set_File(_dataDir + u"aspose-logo.png");
aBox->set_BackgroundImage(image);
// Définir la couleur de fond pour le FloatingBox
aBox->set_BackgroundColor(Color::get_Yellow());
// Ajouter le FloatingBox à la collection de paragraphes de l'objet page
page->get_Paragraphs()->Add(aBox);
// Enregistrer le document PDF
document->Save(_dataDir + outputFileName);
}