Przejdź API do tworzenia i przetwarzania dokumentów PDF
Biblioteka Open Source Go, która daje programistom możliwość tworzenia, edytowania, manipulowania i konwertowania dokumentów PDF.
Unipdf to otwarta biblioteka Source Go, która może z łatwością obsłużyć wszystkie zapytania związane z tworzeniem i manipulacją dokumentami PDF. Biblioteka jest dostępna na podwójnej licencji, gdzie licencja AGPL może być używana do tworzenia oprogramowania open source. Biblioteka zapewnia pełną obsługę generowania dokumentów PDF z wysokim poziomem tekstu, rysunków i obrazów.
Biblioteka unipdf typu open source obsługuje kilka popularnych i zaawansowanych funkcji przetwarzania i optymalizacji dokumentów PDF, takich jak tworzenie raportów PDF, generowanie raportów PDF, tworzenie faktur, tworzenie i obsługa akapitów, łączenie i dzielenie stron PDF, obracanie stron, wyodrębnianie tekstu z Pliki PDF, eksportuj PDF do CSV, konwertuj obrazy do PDF, kompresuj i optymalizuj PDF, pliki PDF ze znakami wodnymi, obsługa czcionek kompozytowych (znaków Unicode), podpisy cyfrowe i wiele innych.
.
Pierwsze kroki z unipdf
Aby zainstalować unipdf w swoim systemie, uruchom następujące polecenie.
Zainstaluj gofpdf przez GitHub
go get github.com/unidoc/unipdf/v3
Aby uzyskać najnowszą aktualizację, odwiedź stronę wersji produktu .
Generuj raport PDF za pomocą Go API
API unipdf o otwartym kodzie źródłowym zapewnia programistom możliwość tworzenia raportów PDF we własnych aplikacjach Go. Biblioteka umożliwia programistom wydajną pracę z dokumentami PDF i zawiera obsługę łatwego dodawania obrazów, tabel, nagłówków, stopek i wielu innych elementów do raportów PDF. Możesz także umieścić dynamiczną zawartość w swoich raportach PDF za pomocą zaledwie kilku linijek kodu.
Konwertuj plik PDF na CSV za pomocą Go API
Biblioteka unipdf umożliwia programistom konwertowanie plików PDF na formaty plików CSV w ich własnych aplikacjach Go. Konwertery PDF na Excel to bardzo przydatne narzędzie dla biznesu i instytucji badawczych. Jest bardzo łatwy w użyciu i zapewnia możliwość wyodrębniania TextMarks z pliku PDF i grupowania ich w słowa, wiersze i kolumny w celu wyodrębnienia danych CSV.
Wstaw obrazy do PDF
API unipdf o otwartym kodzie źródłowym daje programistom możliwość dodawania własnych obrazów do dokumentów PDF w aplikacjach GO. Ułatwia pracę programisty podczas umieszczania obrazów w dokumencie PDF, bez martwienia się o współrzędne. Wystarczy podać ścieżkę i rozmiar obrazu, nie martwiąc się o współrzędne. Biblioteka zawiera obsługę popularnych formatów graficznych, takich jak JPEG, PNG, GIF, TIFF i innych.
// Images to PDF.
func imagesToPdf(inputPaths []string, outputPath string) error {
c := creator.New()
for _, imgPath := range inputPaths {
common.Log.Debug("Image: %s", imgPath)
img, err := c.NewImageFromFile(imgPath)
if err != nil {
common.Log.Debug("Error loading image: %v", err)
return err
}
img.ScaleToWidth(612.0)
// Use page width of 612 points, and calculate the height proportionally based on the image.
// Standard PPI is 72 points per inch, thus a width of 8.5"
height := 612.0 * img.Height() / img.Width()
c.SetPageSize(creator.PageSize{612, height})
c.NewPage()
img.SetPos(0, 0)
_ = c.Draw(img)
}
err := c.WriteToFile(outputPath)
return err
}
Dodaj hasło do dokumentów PDF
Bezpłatny interfejs API unipdf daje programistom możliwość ochrony dokumentów PDF poprzez zastosowanie do nich hasła za pomocą poleceń Go. Możesz ograniczyć użytkownikom możliwość otwierania i czytania dokumentów PDF. Możesz również ustawić hasło właściciela, aby zapewnić pełny dostęp do pliku PDF. Co więcej, możesz także ograniczyć użytkownikom możliwość dokonywania jakichkolwiek zmian w niektórych częściach dokumentów PDF.
func protectPdf(inputPath string, outputPath string, userPassword, ownerPassword string) error {
permissions := security.PermPrinting | // Allow printing with low quality
security.PermFullPrintQuality |
security.PermModify | // Allow modifications.
security.PermAnnotate | // Allow annotations.
security.PermFillForms |
security.PermRotateInsert | // Allow modifying page order, rotating pages etc.
security.PermExtractGraphics | // Allow extracting graphics.
security.PermDisabilityExtract // Allow extracting graphics (accessibility)
encryptOptions := &model.EncryptOptions{
Permissions: permissions,
}
f, err := os.Open(inputPath)
if err != nil {
return err
}
defer f.Close()
pdfReader, err := model.NewPdfReader(f)
if err != nil {
return err
}
isEncrypted, err := pdfReader.IsEncrypted()
if err != nil {
return err
}
if isEncrypted {
return fmt.Errorf("The PDF is already locked (need to unlock first)")
}
// Generate a PdfWriter instance from existing PdfReader.
pdfWriter, err := pdfReader.ToWriter(nil)
if err != nil {
return err
}
// Encrypt document before writing to file.
err = pdfWriter.Encrypt([]byte(userPassword), []byte(ownerPassword), encryptOptions)
if err != nil {
return err
}
// Write to file.
err = pdfWriter.WriteToFile(outputPath)
return err
}