Lägg till streckkod till PDF med C#

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

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:

  1. Skapa först en instans av klassen BarcodeGenerator med EncodeType och text som ska kodas som argument.
  2. Skapa sedan en instans av minnesströmobjektet
  3. Anropa sedan metoden Save() för att spara streckkodsbilden i minnesströmmen.
  4. Skapa sedan en instans av klassen Document.
  5. Lägg sedan till en sida i det nyskapade PDF-dokumentet.
  6. Skapa sedan en instans av klassen PdfFileMend.
  7. Anropa sedan metoden BindPdf() med Document-objektet för att binda det.
  8. Anrop sedan metoden AddImage() med strömobjektet och bildens positionskoordinater som argument.
  9. Efter det sparar du PDF-filen med metoden Save(). Den tar sökvägen till PDF-filen som ett argument.
  10. 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();
Skapa PDF-dokument och lägg till streckkod i C#.

Skapa PDF-dokument och lägg till streckkod i C#.

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:

  1. Skapa först en instans av klassen BarcodeGenerator med EncodeType och text som ska kodas som argument.
  2. Skapa sedan en instans av minnesströmobjektet
  3. Anropa sedan metoden Save() för att spara streckkodsbilden i minnesströmmen.
  4. Ladda sedan PDF-dokumentet med klassen Document.
  5. Skapa sedan en instans av klassen PdfFileMend.
  6. Anrop sedan metoden BindPdf() med Document-objektet för att binda det.
  7. Anropa sedan metoden AddImage() med strömobjektet, sidnummer och bildpositionskoordinater som argument.
  8. Efter det sparar du PDF-filen med metoden Save(). Den tar sökvägen till PDF-filen som ett argument.
  9. 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 streckkod till befintliga PDF-dokument i C#.

Lägg till streckkod till befintliga PDF-dokument i C#.

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ägg till QR-kod till PDF-dokument i C#.

Lägg till QR-kod till PDF-dokument i C#.

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:

  1. Skapa först en instans av klassen PdfExtractor.
  2. Bind sedan in PDF-dokumentet med metoden BindPdf().
  3. Ställ sedan in sidintervallet för bildextraktion.
  4. Anropa sedan metoden ExtractImage() för att extrahera bilderna.
  5. Spara sedan bilden för att streama i en loop.
  6. Skapa sedan en instans av klassen BarCodeReader med bildström och DecodeType som argument.
  7. Efter det, anropa metoden ReadBarCodes() för att få objektet BarCodeResult.
  8. 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.

Se även