unipdf/model/reader_test.go

50 lines
983 B
Go
Raw Normal View History

/*
* This file is subject to the terms and conditions defined in
* file 'LICENSE.md', which is part of this source code package.
*/
package model
import (
"bytes"
"os"
"testing"
"github.com/stretchr/testify/require"
"github.com/unidoc/unipdf/v3/core"
)
func TestReaderLazy(t *testing.T) {
f, err := os.Open(`./testdata/minimal.pdf`)
require.NoError(t, err)
reader, err := NewPdfReaderLazy(f)
require.NoError(t, err)
defer f.Close()
require.Equal(t, 1, len(reader.PageList))
page, err := reader.GetPage(1)
require.NoError(t, err)
ref, isRef := page.Contents.(*core.PdfObjectReference)
require.True(t, isRef)
obj := ref.Resolve()
_, isStream := obj.(*core.PdfObjectStream)
require.True(t, isStream)
str, err := page.GetAllContentStreams()
require.NoError(t, err)
require.Equal(t, 55, len(str))
var buf bytes.Buffer
writer := NewPdfWriter()
err = writer.AddPage(page)
require.NoError(t, err)
err = writer.Write(&buf)
require.NoError(t, err)
}