Je voulais savoir comment saisir un élément d'image dans un fichier PDF en utilisant C#. Je sais comment ajouter les éléments à un fichier PDF, j'ai juste besoin de savoir comment accéder aux éléments de l'image. J'utilise également iTextSharp.Comment saisir des éléments d'image PDF en utilisant C#
0
A
Répondre
2
Je crois que vous pouvez le faire avec itextsharp.
J'ai eu ce code stocké sur ma machine, mais je ne l'ai jamais utilisé. Je l'ai sorti d'un forum et il n'a pas été testé, mais je suis sûr que vous pourriez le faire fonctionner.
using iTextSharp.text;
using iTextSharp.text.pdf;
#region ExtractImagesFromPDF
public static void ExtractImagesFromPDF(string sourcePdf, string outputPath)
{
// NOTE: This will only get the first image it finds per page.
PdfReader pdf = new PdfReader(sourcePdf);
RandomAccessFileOrArray raf = new iTextSharp.text.pdf.RandomAccessFileOrArray(sourcePdf);
try
{
for (int pageNumber = 1; pageNumber <= pdf.NumberOfPages; pageNumber++)
{
PdfDictionary pg = pdf.GetPageN(pageNumber);
PdfDictionary res =
(PdfDictionary)PdfReader.GetPdfObject(pg.Get(PdfName.RESOURCES));
PdfDictionary xobj =
(PdfDictionary)PdfReader.GetPdfObject(res.Get(PdfName.XOBJECT));
if (xobj != null)
{
foreach (PdfName name in xobj.Keys)
{
PdfObject obj = xobj.Get(name);
if (obj.IsIndirect())
{
PdfDictionary tg = (PdfDictionary)PdfReader.GetPdfObject(obj);
PdfName type =
(PdfName)PdfReader.GetPdfObject(tg.Get(PdfName.SUBTYPE));
if (PdfName.IMAGE.Equals(type))
{
int XrefIndex = Convert.ToInt32(((PRIndirectReference)obj).Number.ToString(System.Globalization.CultureInfo.InvariantCulture));
PdfObject pdfObj = pdf.GetPdfObject(XrefIndex);
PdfStream pdfStrem = (PdfStream)pdfObj;
byte[] bytes = PdfReader.GetStreamBytesRaw((PRStream)pdfStrem);
if ((bytes != null))
{
using (System.IO.MemoryStream memStream = new System.IO.MemoryStream(bytes))
{
memStream.Position = 0;
System.Drawing.Image img = System.Drawing.Image.FromStream(memStream);
// must save the file while stream is open.
if (!Directory.Exists(outputPath))
Directory.CreateDirectory(outputPath);
string path = Path.Combine(outputPath, String.Format(@"{0}.jpg", pageNumber));
System.Drawing.Imaging.EncoderParameters parms = new System.Drawing.Imaging.EncoderParameters(1);
parms.Param[0] = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Compression, 0);
// GetImageEncoder is found below this method
System.Drawing.Imaging.ImageCodecInfo jpegEncoder = GetImageEncoder("JPEG");
img.Save(path, jpegEncoder, parms);
break;
}
}
}
}
}
}
}
}
catch
{
throw;
}
finally
{
pdf.Close();
}
}
#endregion
#region GetImageEncoder
public static System.Drawing.Imaging.ImageCodecInfo GetImageEncoder(string imageType)
{
imageType = imageType.ToUpperInvariant();
foreach (ImageCodecInfo info in ImageCodecInfo.GetImageEncoders())
{
if (info.FormatDescription == imageType)
{
return info;
}
}
return null;
}
#endregion
0
Gardez à l'esprit l'image ne peut pas exister sous forme d'image, mais comme un ensemble de blobs (c.-à-données brutes, les données de ColorSpace, profil ICC ou colorspace) dont vous aurez besoin de mettre sur pied. L'image brute peut également être manipulée à l'écran (c'est-à-dire mise à l'échelle, pivotée, inversée, masquée, découpée).
Questions connexes
- 1. Saisir des éléments entre parenthèses
- 2. Saisir des valeurs dans des éléments XML en Java
- 3. Comment obtenir des éléments alternatifs en utilisant Enumerable en C#
- 4. personnaliser l'ordre d'affichage des éléments en sérialisation en utilisant C#
- 5. comment convertir PDF en HTML en utilisant C#
- 6. Création de fichiers PDF en utilisant C# 4?
- 7. lire des fichiers pdf en utilisant java
- 8. Diviser la page PDF en utilisant C#
- 9. Comment rendre les fichiers PDF en utilisant C#
- 10. Comment sélectionner des éléments dans une variable en utilisant jQuery?
- 11. Comment convertir des images en pdf en utilisant PHP?
- 12. Comment extraire une image d'un fichier pdf en utilisant C#
- 13. Comment puis-je trier les éléments vectoriels utilisant des éléments comme la clé en C++
- 14. c struct saisir des données par offset
- 15. Saisir des liens en utilisant xpath dans php
- 16. Générer des fichiers PDF en Objective-C
- 17. Afficher ou masquer des éléments en PDF via Javascript
- 18. Comment convertir un fichier Adobe EPS en PDF par programmation en utilisant uniquement des classes C#?
- 19. Comment saisir les paramètres d'URL en utilisant PHP?
- 20. Comment créer des fichiers PDF en utilisant zend framework?
- 21. Comment redimensionner un pdf en utilisant iTextSharp
- 22. Comment saisir une valeur de champs cachés en utilisant PHP
- 23. Convertir un fichier PDF en images en utilisant C#
- 24. Lecture PDF en C#
- 25. Comment saisir l'URL parent à partir d'un iFrame en utilisant C#
- 26. Image PDF en document PDF en utilisant ReportLab (Python)
- 27. comment exporter gridview au pdf en C#
- 28. PDF protégé par mot de passe en utilisant C#
- 29. Extrait l'image d'un PDF en utilisant .Net C#
- 30. boucler des éléments en utilisant xPath