Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Les annotations dans un document PDF sont contenues dans la collection Annotations d’un objet Page. Cette collection contient toutes les annotations pour cette page individuelle uniquement : chaque page a sa propre collection Annotations. Pour ajouter une annotation à une page particulière, ajoutez-la à la collection Annotations de cette page en utilisant la méthode Add.
Utilisez la classe ScreenAnnotation dans l’espace de noms Aspose.PDF.InteractiveFeatures.Annotations pour inclure des fichiers SWF en tant qu’annotations dans un document PDF à la place. Une annotation d’écran spécifie une région d’une page sur laquelle des clips multimédias peuvent être lus.
Lorsque vous devez ajouter un lien vidéo externe dans un document PDF, vous pouvez utiliser MovieAnnotaiton. Une annotation de film contient des graphiques animés et du son à présenter sur l’écran de l’ordinateur et à travers les haut-parleurs.
Une Sound Annotation est analogue à une annotation de texte, sauf qu’au lieu d’une note textuelle, elle contient un son enregistré à partir du microphone de l’ordinateur ou importé d’un fichier. Lorsque l’annotation est activée, le son est joué. L’annotation se comporte comme une annotation de texte dans la plupart des cas, avec une icône différente (par défaut, un haut-parleur) pour indiquer qu’elle représente un son.
Cependant, lorsqu’il est nécessaire d’intégrer des médias dans un document PDF, vous devez utiliser RichMediaAnnotation.
Les méthodes/propriétés suivantes de la classe RichMediaAnnotation peuvent être utilisées.
Le code suivant fonctionne également avec la bibliothèque Aspose.PDF.Drawing.
Le code suivant montre comment ajouter une annotation d’écran à un fichier PDF :
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddScreenAnnotationWithMedia()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();
// Open PDF document
using (cument = new Aspose.Pdf.Document(dataDir + "sample.pdf"))
{
// Path to the media file (SWF)
var mediaFile = dataDir + "input.swf";
// Create Screen Annotation
var screenAnnotation = new Aspose.Pdf.Annotations.ScreenAnnotation(
document.Pages[1],
new Aspose.Pdf.Rectangle(170, 190, 470, 380),
mediaFile);
// Add the annotation to the page
document.Pages[1].Annotations.Add(screenAnnotation);
// Save PDF document
document.Save(dataDir + "AddScreenAnnotationWithMedia_out.pdf");
}
}
Le code suivant montre comment ajouter une annotation sonore à un fichier PDF :
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddSoundAnnotation()
{
// Open PDF document
var dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();
using (var document = new Aspose.Pdf.Document(dataDir + "sample.pdf"))
{
var mediaFile = dataDir + "file_example_WAV_1MG.wav";
// Create Sound Annotation
var soundAnnotation = new Aspose.Pdf.Annotations.SoundAnnotation(
document.Pages[1],
new Aspose.Pdf.Rectangle(20, 700, 60, 740),
mediaFile)
{
Color = Aspose.Pdf.Color.Blue,
Title = "John Smith",
Subject = "Sound Annotation demo",
Popup = new Aspose.Pdf.Annotations.PopupAnnotation(document.Pages[1], new Aspose.Pdf.Rectangle(20, 700, 60, 740))
};
document.Pages[1].Annotations.Add(soundAnnotation);
// Save PDF document
document.Save(dataDir + "AddSoundAnnotation_out.pdf");
}
}
Le code suivant montre comment ajouter RichMediaAnnotation à un fichier PDF :
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddRichMediaAnnotation()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();
// Create PDF document
using (var document = new Aspose.Pdf.Document())
{
var pathToAdobeApp = @"C:\Program Files (x86)\Adobe\Acrobat 2017\Acrobat\Multimedia Skins";
Page page = document.Pages.Add();
// Define video and poster names
const string videoName = "file_example_MP4_480_1_5MG.mp4";
const string posterName = "file_example_MP4_480_1_5MG_poster.jpg";
string skinName = "SkinOverAllNoFullNoCaption.swf";
// Create RichMediaAnnotation
var rma = new RichMediaAnnotation(page, new Aspose.Pdf.Rectangle(100, 500, 300, 600));
// Specify the stream containing the video player code
rma.CustomPlayer = new FileStream(Path.Combine(pathToAdobeApp, "Players", "Videoplayer.swf"), FileMode.Open, FileAccess.Read);
// Compose flash variables line for the player
rma.CustomFlashVariables = $"source={videoName}&skin={skinName}";
// Add skin code
rma.AddCustomData(skinName, new FileStream(Path.Combine(pathToAdobeApp, skinName), FileMode.Open, FileAccess.Read));
// Set poster for the video
rma.SetPoster(new FileStream(Path.Combine(dataDir, posterName), FileMode.Open, FileAccess.Read));
// Set video content
using (Stream fs = new FileStream(Path.Combine(dataDir, videoName), FileMode.Open, FileAccess.Read))
{
rma.SetContent(videoName, fs);
}
// Set type of the content (video)
rma.Type = RichMediaAnnotation.ContentType.Video;
// Activate player by click
rma.ActivateOn = RichMediaAnnotation.ActivationEvent.Click;
// Update annotation data
rma.Update();
// Add annotation to the page
page.Annotations.Add(rma);
// Save PDF document
document.Save(dataDir + "RichMediaAnnotation_out.pdf");
}
}
Veuillez essayer d’utiliser le code suivant pour obtenir MultimediaAnnotation à partir d’un document PDF.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void GetMultimediaAnnotation()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "RichMediaAnnotation.pdf"))
{
// Get multimedia annotations (Screen, Sound, RichMedia)
var mediaAnnotations = document.Pages[1].Annotations
.Where(a => a.AnnotationType == Aspose.Pdf.Annotations.AnnotationType.Screen
|| a.AnnotationType == Aspose.Pdf.Annotations.AnnotationType.Sound
|| a.AnnotationType == Aspose.Pdf.Annotations.AnnotationType.RichMedia)
.Cast<Aspose.Pdf.Annotations.Annotation>();
// Iterate through the annotations and print their details
foreach (var ma in mediaAnnotations)
{
Console.WriteLine($"{ma.AnnotationType} [{ma.Rect}]");
}
}
}
Le code suivant montre comment supprimer MultimediaAnnotation d’un fichier PDF.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void DeletePolyAnnotation()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "RichMediaAnnotation.pdf"))
{
// Get RichMedia annotations
var richMediaAnnotations = document.Pages[1].Annotations
.Where(a => a.AnnotationType == Aspose.Pdf.Annotations.AnnotationType.RichMedia)
.Cast<Aspose.Pdf.Annotations.RichMediaAnnotation>();
// Delete each RichMedia annotation
foreach (var rma in richMediaAnnotations)
{
document.Pages[1].Annotations.Delete(rma);
}
// Save PDF document
document.Save(dataDir + "DeletePolyAnnotation_out.pdf");
}
}
Les formulaires interactifs utilisent des Widget Annotations pour représenter l’apparence des champs et gérer les interactions des utilisateurs. Nous utilisons ces éléments de formulaire qui s’ajoutent à un PDF pour faciliter la saisie, la soumission d’informations ou effectuer d’autres interactions utilisateur.
Les annotations de widget sont une représentation graphique d’un champ de formulaire sur des pages spécifiques, donc nous ne pouvons pas les créer directement en tant qu’annotation.
Chaque annotation de widget aura des graphiques appropriés (apparence) en fonction de son type. Après création, certains aspects visuels peuvent être modifiés, tels que le style de bordure et la couleur de fond. D’autres propriétés telles que la couleur du texte et la police peuvent être modifiées via le champ, une fois attaché à l’un d’eux.
Dans certains cas, vous pouvez vouloir qu’un champ apparaisse sur plus d’une page, répétant la même valeur. Dans ce cas, les champs qui ont normalement juste un widget peuvent avoir plusieurs widgets attachés : un TextField, ListBox, ComboBox et CheckBox ont généralement exactement un, tandis que le RadioGroup a plusieurs widgets, un pour chaque bouton radio. Une personne remplissant le formulaire peut utiliser n’importe lequel de ces widgets pour mettre à jour la valeur du champ, et cela se reflète également dans tous les autres widgets.
Chaque champ de formulaire pour chaque emplacement dans le document représente une annotation de widget. Les données spécifiques à l’emplacement de l’annotation de widget sont ajoutées à la page particulière. Chaque champ de formulaire a plusieurs variations. Un bouton peut être un bouton radio, une case à cocher ou un bouton-poussoir. Un widget de choix peut être une liste déroulante ou une boîte combinée.
Dans cet exemple, nous allons apprendre à ajouter des boutons-poussoirs pour la navigation dans le document.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddPrintButton()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Forms();
// Create PDF document
using (var document = new Aspose.Pdf.Document())
{
// Add page
var page = document.Pages.Add();
// Define the rectangle for the button
var rect = new Aspose.Pdf.Rectangle(72, 748, 164, 768);
// Create a button field
var printButton = new Aspose.Pdf.Forms.ButtonField(page, rect)
{
AlternateName = "Print current document",
Color = Aspose.Pdf.Color.Black,
PartialName = "printBtn1",
NormalCaption = "Print Document"
};
// Set the border style for the button
var border = new Aspose.Pdf.Annotations.Border(printButton)
{
Style = Aspose.Pdf.Annotations.BorderStyle.Solid,
Width = 2
};
printButton.Border = border;
// Set the border and background color characteristics
printButton.Characteristics.Border = System.Drawing.Color.FromArgb(255, 0, 0, 255);
printButton.Characteristics.Background = System.Drawing.Color.FromArgb(255, 0, 191, 255);
// Add the button to the form
document.Form.Add(printButton);
// Save PDF document
document.Save(dataDir + "PrintButton_out.pdf");
}
}
Ce bouton a une bordure et définit un arrière-plan. Nous définissons également un nom de bouton (Name), un tooltip (AlternateName), une étiquette (NormalCaption) et une couleur du texte de l’étiquette (Color).
Il existe un exemple plus complexe de l’utilisation des annotations de widget - la navigation dans le document PDF. Cela peut être nécessaire pour préparer une présentation de document PDF.
Cet exemple montre comment créer 4 boutons :
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddNavigationButtons()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Forms();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "JSON Fundamenals.pdf"))
{
// Create an array of button fields
var buttons = new Aspose.Pdf.Forms.ButtonField[4];
// Define alternate names and normal captions for the buttons
var alternateNames = new[] { "Go to first page", "Go to prev page", "Go to next page", "Go to last page" };
var normalCaptions = new[] { "First", "Prev", "Next", "Last" };
// Define predefined actions for the buttons
PredefinedAction[] actions = {
PredefinedAction.FirstPage,
PredefinedAction.PrevPage,
PredefinedAction.NextPage,
PredefinedAction.LastPage
};
// Define border and background colors
var clrBorder = System.Drawing.Color.FromArgb(255, 0, 255, 0);
var clrBackGround = System.Drawing.Color.FromArgb(255, 0, 96, 70);
// We should create the buttons without attaching them to the page.
for (var i = 0; i < 4; i++)
{
buttons[i] = new Aspose.Pdf.Forms.ButtonField(document, new Aspose.Pdf.Rectangle(32 + i * 80, 28, 104 + i * 80, 68))
{
AlternateName = alternateNames[i],
Color = Aspose.Pdf.Color.White,
NormalCaption = normalCaptions[i],
OnActivated = new Aspose.Pdf.Annotations.NamedAction(actions[i])
};
// Set the border style for the button
buttons[i].Border = new Aspose.Pdf.Annotations.Border(buttons[i])
{
Style = Aspose.Pdf.Annotations.BorderStyle.Solid,
Width = 2
};
// Set the border and background color characteristics
buttons[i].Characteristics.Border = clrBorder;
buttons[i].Characteristics.Background = clrBackGround;
}
// Duplicate the array of buttons on each page in the document
for (var pageIndex = 1; pageIndex <= document.Pages.Count; pageIndex++)
{
for (var i = 0; i < 4; i++)
{
document.Form.Add(buttons[i], $"btn{pageIndex}_{i + 1}", pageIndex);
}
}
// Save PDF document
document.Save(dataDir + "NavigationButtons_out.pdf");
// We call Form.Add method with the following parameters: field, name, and the index of the pages that this field will be added to.
// And to get the full result, we need disable the “First” and “Prev” buttons on the first page and the “Next” and “Last” buttons on the last page.
document.Form["btn1_1"].ReadOnly = true;
document.Form["btn1_2"].ReadOnly = true;
document.Form[$"btn{document.Pages.Count}_3"].ReadOnly = true;
document.Form[$"btn{document.Pages.Count}_4"].ReadOnly = true;
}
}
Pour des informations plus détaillées et des possibilités de ces fonctionnalités, consultez également Travailler avec des formulaires.
Dans les documents PDF, vous pouvez visualiser et gérer du contenu 3D de haute qualité créé avec des logiciels de CAO 3D ou de modélisation 3D et intégré dans le document PDF. Vous pouvez faire pivoter les éléments 3D dans toutes les directions comme si vous les teniez dans vos mains.
Pourquoi avez-vous besoin d’un affichage 3D d’images ?
Au cours des dernières années, la technologie a réalisé d’énormes avancées dans tous les domaines grâce à l’impression 3D. Les technologies d’impression 3D peuvent être appliquées pour enseigner des compétences technologiques dans la construction, le génie mécanique, le design comme principal outil. Ces technologies, grâce à l’émergence de dispositifs d’impression personnels, peuvent contribuer à l’introduction de nouvelles formes d’organisation du processus éducatif, augmenter la motivation et former les compétences nécessaires des diplômés et des enseignants.
La tâche principale de la modélisation 3D est l’idée d’un objet futur ou d’un objet car, pour libérer un objet, vous devez comprendre ses caractéristiques de conception dans tous les détails pour une régénération successive en design industriel ou en architecture.
L’annotation 3D est ajoutée à l’aide d’un modèle créé au format U3D.
Créez un nouveau Document.
Chargez les données du modèle 3D souhaité (dans notre cas “Ring.u3d”) pour créer PDF3DContent.
Créez un objet 3dArtWork et liez-le au document et au 3DContent.
Réglez l’objet pdf3dArtWork :
CAD
dans l’exemple)Solid
dans l’exemple)ViewArray
, créez au moins une 3D View et ajoutez-la au tableau.Définissez 3 paramètres de base dans l’annotation :
page
sur laquelle l’annotation sera placée.rectangle
, à l’intérieur duquel se trouve l’annotation.3dArtWork
.Pour une meilleure présentation de l’objet 3D, définissez le cadre de bordure.
Définissez la vue par défaut (par exemple - TOP).
Ajoutez quelques paramètres supplémentaires : nom, affiche de prévisualisation, etc.
Ajoutez l’annotation à la Page.
Enregistrez le résultat.
Veuillez consulter le code suivant pour ajouter une annotation 3D.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void Add3dAnnotation()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();
// Create PDF document
using (var document = new Aspose.Pdf.Document())
{
// Load 3D content
var pdf3DContent = new Aspose.Pdf.Annotations.PDF3DContent(dataDir + "Ring.u3d");
// Create 3D artwork
var pdf3dArtWork = new Aspose.Pdf.Annotations.PDF3DArtwork(document, pdf3DContent)
{
LightingScheme = new Aspose.Pdf.Annotations.PDF3DLightingScheme(Aspose.Pdf.Annotations.LightingSchemeType.CAD),
RenderMode = new Aspose.Pdf.Annotations.PDF3DRenderMode(Aspose.Pdf.Annotations.RenderModeType.Solid),
};
// Define matrices for different views
var topMatrix = new Aspose.Pdf.Matrix3D(1, 0, 0, 0, -1, 0, 0, 0, -1, 0.10271, 0.08184, 0.273836);
var frontMatrix = new Aspose.Pdf.Matrix3D(0, -1, 0, 0, 0, 1, -1, 0, 0, 0.332652, 0.08184, 0.085273);
// Add views to the 3D artwork
pdf3dArtWork.ViewArray.Add(new Aspose.Pdf.Annotations.PDF3DView(document, topMatrix, 0.188563, "Top")); //1
pdf3dArtWork.ViewArray.Add(new Aspose.Pdf.Annotations.PDF3DView(document, frontMatrix, 0.188563, "Left")); //2
// Add page
var page = document.Pages.Add();
// Create a 3D annotation
var pdf3dAnnotation = new Aspose.Pdf.Annotations.PDF3DAnnotation(page, new Aspose.Pdf.Rectangle(100, 500, 300, 700), pdf3dArtWork);
pdf3dAnnotation.Border = new Aspose.Pdf.Annotations.Border(pdf3dAnnotation);
pdf3dAnnotation.SetDefaultViewIndex(1);
pdf3dAnnotation.Flags = Aspose.Pdf.Annotations.AnnotationFlags.NoZoom;
pdf3dAnnotation.Name = "Ring.u3d";
// Set preview image if needed
// pdf3dAnnotation.SetImagePreview(dataDir + "sample_3d.png");
// Add the 3D annotation to the page
document.Pages[1].Annotations.Add(pdf3dAnnotation);
// Save PDF document
document.Save(dataDir + "Add3dAnnotation_out.pdf");
}
}
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.