PDF är det mest populära formatet för att dela och skriva ut dokument. Många organisationer använder PDF som standardformat för att generera rapporter och dela andra officiella dokument. I vissa fall kan vi behöva bädda in specifik data eller information om dokumentet, produkten eller företaget som en streckkodsbild i PDF-dokument. Vi kan lägga till en maskinläsbar streckkodsbild till ett PDF-dokument programmatiskt i .NET-applikationer. I den här artikeln kommer vi att lära oss hur du lägger till en streckkod till PDF-dokument med C#.
Artikeln ska täcka följande ämnen:
- C# API för att lägga till streckkod till PDF
- Skapa PDF-dokument och lägg till streckkod
- Lägg till streckkod i befintligt PDF-dokument
- Lägg till QR-kod till PDF-dokument
- Läs streckkod från PDF-dokument
C# API för att lägga till streckkod till PDF
För att lägga till streckkoder till PDF-dokument kommer vi att följa en tvåstegsprocedur. Först kommer vi att använda Aspose.PDF för .NET API för att skapa eller ladda ett PDF-dokument, sedan kommer vi att generera och lägga till streckkodsbilden till PDF:en med [Aspose.BarCode for .NET][] 3] API. Vänligen antingen ladda ner API:ernas DLL:er eller installera dem med NuGet.
PM> Install-Package Aspose.BarCode
PM> Install-Package Aspose.PDF
Skapa PDF-dokument och lägg till streckkod i C#
Vi kan skapa ett nytt PDF-dokument och lägga till en streckkodsbild till PDF-filen genom att följa stegen nedan:
- Skapa först en instans av klassen BarcodeGenerator med EncodeType och text som ska kodas som argument.
- Skapa sedan en instans av minnesströmobjektet
- Anropa sedan metoden Save() för att spara streckkodsbilden i minnesströmmen.
- Skapa sedan en instans av klassen Document.
- Lägg sedan till en sida i det nyskapade PDF-dokumentet.
- Skapa sedan en instans av klassen PdfFileMend.
- Anropa sedan metoden BindPdf() med Document-objektet för att binda det.
- Anrop sedan metoden AddImage() med strömobjektet och bildens positionskoordinater som argument.
- Efter det sparar du PDF-filen med metoden Save(). Den tar sökvägen till PDF-filen som ett argument.
- Anrop slutligen metoden Close() för att stänga PdfFileMend-objektet.
Följande kodexempel visar hur man skapar ett nytt PDF-dokument och lägger till en streckkodsbild med C#.
// Detta kodexempel visar hur man lägger till streckkodsbild till en PDF.
// Sökvägen till dokumentkatalogen.
string dataDir = @"D:\Files\BarCode\";
// Instantiera linjärt streckkodsobjekt, Ställ in kodtext och symboltyp för streckkoden
BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Code39Standard, "1234567");
// Skapa minnesström och spara streckkodsbild till minnesström
Stream ms = new MemoryStream();
generator.Save(ms, BarCodeImageFormat.Bmp);
// Skapa PDF-dokument och lägg till en sida i dokumentet
Document doc = new Document();
doc.Pages.Add();
// Öppna dokumentet
PdfFileMend mender = new PdfFileMend();
// Bind PDF:en för att lägga till streckkod
mender.BindPdf(doc);
// Lägg till streckkodsbild i PDF-filen
mender.AddImage(ms, 1, 100, 600, 200, 700);
// Spara ändringar
mender.Save(dataDir + "AddImage_out.pdf");
// Stäng PdfFileMend-objektet
mender.Close();
Lägg till streckkod till befintliga PDF-dokument i C#
Vi kan också lägga till en streckkodsbild på vilken sida som helst i befintliga PDF-dokument. Metoden AddImage() gör det möjligt att lägga till en bild på den angivna sidan i PDF-dokumentet vid angivna koordinater. Vi kan infoga en bild i ett befintligt PDF-dokument genom att följa stegen nedan:
- Skapa först en instans av klassen BarcodeGenerator med EncodeType och text som ska kodas som argument.
- Skapa sedan en instans av minnesströmobjektet
- Anropa sedan metoden Save() för att spara streckkodsbilden i minnesströmmen.
- Ladda sedan PDF-dokumentet med klassen Document.
- Skapa sedan en instans av klassen PdfFileMend.
- Anrop sedan metoden BindPdf() med Document-objektet för att binda det.
- Anropa sedan metoden AddImage() med strömobjektet, sidnummer och bildpositionskoordinater som argument.
- Efter det sparar du PDF-filen med metoden Save(). Den tar sökvägen till PDF-filen som ett argument.
- Anropa slutligen metoden Close() för att stänga PdfFileMend-objektet.
Följande kodexempel visar hur man lägger till en streckkodsbild till ett befintligt PDF-dokument med C#.
// Detta kodexempel visar hur man lägger till streckkodsbild till en befintlig PDF.
// Sökvägen till dokumentkatalogen.
string dataDir = @"D:\Files\BarCode\";
// Instantiera linjärt streckkodsobjekt, Ställ in kodtext och symboltyp för streckkoden
BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Code39Standard, "1234567");
// Skapa minnesström och spara streckkodsbild till minnesström
Stream ms = new MemoryStream();
generator.Save(ms, BarCodeImageFormat.Bmp);
// Ladda ett PDF-dokument
Document doc = new Document(dataDir + "sample.pdf");
// Öppna dokumentet
PdfFileMend mender = new PdfFileMend();
// Bind PDF för att lägga till streckkodsbild
mender.BindPdf(doc);
// Lägg till streckkodsbild i PDF-filen
mender.AddImage(ms, 1, 70, 0, 200, 600);
// Spara ändringar
mender.Save(dataDir + "Sample_out.pdf");
// Stäng PdfFileMend-objektet
mender.Close();
Lägg till QR-kod till PDF-dokument i C#
På samma sätt kan vi också lägga till en QR-kod till PDF-dokumenten genom att följa stegen som nämnts tidigare. Men vi behöver bara ställa in EncodeType som QR i det första steget. Vi kan också behöva justera bildpositionen i steg #7.
Följande kodexempel visar hur man lägger till en QR-kod i ett PDF-dokument med C#.
// Detta kodexempel visar hur man lägger till QR-kod i en befintlig PDF.
// Sökvägen till dokumentkatalogen.
string dataDir = @"D:\Files\BarCode\";
// Instantiera linjärt streckkodsobjekt, Ställ in kodtext och symboltyp för streckkoden
BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.QR, "1234567");
// Skapa minnesström och spara streckkodsbild till minnesström
Stream ms = new MemoryStream();
generator.Save(ms, BarCodeImageFormat.Bmp);
// Ladda ett PDF-dokument
Document doc = new Document(dataDir + "sample.pdf");
// Öppna dokumentet
PdfFileMend mender = new PdfFileMend();
// Bind PDF för att lägga till streckkodsbild
mender.BindPdf(doc);
// Lägg till QR-bild i PDF-filen
mender.AddImage(ms, 1, 0, 650, 200, 780);
// Spara ändringar
mender.Save(dataDir + "Sample_QR_out.pdf");
// Stäng PdfFileMend-objektet
mender.Close();
Läs streckkod från PDF-dokument med C#
Vi kan känna igen vilken streckkodsbild som helst som är inbäddad på alla sidor i PDF-dokumentet med klassen PdfExtractor. Det gör det möjligt att extrahera bilder från PDF, och sedan kommer vi att läsa streckkodsinformationen från den extraherade bilden. Vi kan läsa streckkoder från PDF-dokumenten genom att följa stegen nedan:
- Skapa först en instans av klassen PdfExtractor.
- Bind sedan in PDF-dokumentet med metoden BindPdf().
- Ställ sedan in sidintervallet för bildextraktion.
- Anropa sedan metoden ExtractImage() för att extrahera bilderna.
- Spara sedan bilden för att streama i en loop.
- Skapa sedan en instans av klassen BarCodeReader med bildström och DecodeType som argument.
- Efter det, anropa metoden ReadBarCodes() för att få objektet BarCodeResult.
- Till sist, visa streckkodsinformationen.
Följande kodexempel visar hur man läser en streckkodsbild från ett PDF-dokument med C#.
// Detta kodexempel visar hur man läser streckkoder från en PDF
// Sökvägen till dokumentkatalogen.
string dataDir = @"D:\Files\BarCode\sample_out.pdf";
// Bind pdf-dokumentet
Aspose.Pdf.Facades.PdfExtractor pdfExtractor = new Aspose.Pdf.Facades.PdfExtractor();
pdfExtractor.BindPdf(dataDir);
// Ställ in sidintervall för bildextraktion
pdfExtractor.StartPage = 1;
pdfExtractor.EndPage = 1;
// Extrahera bilderna
pdfExtractor.ExtractImage();
// Spara bilder för att streama i en slinga
while (pdfExtractor.HasNextImage())
{
// Spara bilden för att streama
MemoryStream imageStream = new MemoryStream();
pdfExtractor.GetNextImage(imageStream);
imageStream.Position = 0;
// Känn igen streckkoden från bildströmmen ovan
using (BarCodeReader reader = new BarCodeReader(imageStream, DecodeType.Code39Standard))
{
foreach (BarCodeResult result in reader.ReadBarCodes())
{
Console.WriteLine("Codetext found: " + result.CodeText);
Console.WriteLine("Symbology: " + result.CodeType);
}
}
}
Codetext found: 1234567
Symbology: Code39Standard
Skaffa en gratis licens
Du kan få en gratis tillfällig licens för att prova biblioteket utan utvärderingsbegränsningar.
Slutsats
I den här artikeln har vi lärt oss hur man:
- skapa ett PDF-dokument programmatiskt;
- generera och lägga till en streckkodsbild till PDF:en i C#;
- extrahera bilder från ett PDF-dokument med C#;
- läsa streckkodsbild från ett PDF-dokument.
Dessutom kan du lära dig mer om Aspose.BarCode för .NET API med hjälp av dokumentationen. I händelse av oklarheter, var god kontakta oss på forum.