mirror of
https://github.com/unidoc/unipdf.git
synced 2025-04-30 13:48:51 +08:00
Support MediaBox and others with a referenced array
This commit is contained in:
parent
69669545f5
commit
20bffefb89
40
pdf/page.go
40
pdf/page.go
@ -275,55 +275,75 @@ func (reader *PdfReader) newPdfPageFromDict(p *PdfObjectDictionary) (*PdfPage, e
|
|||||||
}
|
}
|
||||||
|
|
||||||
if obj, isDefined := d["MediaBox"]; isDefined {
|
if obj, isDefined := d["MediaBox"]; isDefined {
|
||||||
boxArr, ok := obj.(*PdfObjectArray)
|
var err error
|
||||||
|
obj, err = reader.traceToObject(obj)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
boxArr, ok := TraceToDirectObject(obj).(*PdfObjectArray)
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil, errors.New("Page MediaBox not an array")
|
return nil, errors.New("Page MediaBox not an array")
|
||||||
}
|
}
|
||||||
var err error
|
|
||||||
page.MediaBox, err = NewPdfRectangle(*boxArr)
|
page.MediaBox, err = NewPdfRectangle(*boxArr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if obj, isDefined := d["CropBox"]; isDefined {
|
if obj, isDefined := d["CropBox"]; isDefined {
|
||||||
boxArr, ok := obj.(*PdfObjectArray)
|
var err error
|
||||||
|
obj, err = reader.traceToObject(obj)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
boxArr, ok := TraceToDirectObject(obj).(*PdfObjectArray)
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil, errors.New("Page CropBox not an array")
|
return nil, errors.New("Page CropBox not an array")
|
||||||
}
|
}
|
||||||
var err error
|
|
||||||
page.CropBox, err = NewPdfRectangle(*boxArr)
|
page.CropBox, err = NewPdfRectangle(*boxArr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if obj, isDefined := d["BleedBox"]; isDefined {
|
if obj, isDefined := d["BleedBox"]; isDefined {
|
||||||
boxArr, ok := obj.(*PdfObjectArray)
|
var err error
|
||||||
|
obj, err = reader.traceToObject(obj)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
boxArr, ok := TraceToDirectObject(obj).(*PdfObjectArray)
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil, errors.New("Page BleedBox not an array")
|
return nil, errors.New("Page BleedBox not an array")
|
||||||
}
|
}
|
||||||
var err error
|
|
||||||
page.BleedBox, err = NewPdfRectangle(*boxArr)
|
page.BleedBox, err = NewPdfRectangle(*boxArr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if obj, isDefined := d["TrimBox"]; isDefined {
|
if obj, isDefined := d["TrimBox"]; isDefined {
|
||||||
boxArr, ok := obj.(*PdfObjectArray)
|
var err error
|
||||||
|
obj, err = reader.traceToObject(obj)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
boxArr, ok := TraceToDirectObject(obj).(*PdfObjectArray)
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil, errors.New("Page TrimBox not an array")
|
return nil, errors.New("Page TrimBox not an array")
|
||||||
}
|
}
|
||||||
var err error
|
|
||||||
page.TrimBox, err = NewPdfRectangle(*boxArr)
|
page.TrimBox, err = NewPdfRectangle(*boxArr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if obj, isDefined := d["ArtBox"]; isDefined {
|
if obj, isDefined := d["ArtBox"]; isDefined {
|
||||||
boxArr, ok := obj.(*PdfObjectArray)
|
var err error
|
||||||
|
obj, err = reader.traceToObject(obj)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
boxArr, ok := TraceToDirectObject(obj).(*PdfObjectArray)
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil, errors.New("Page ArtBox not an array")
|
return nil, errors.New("Page ArtBox not an array")
|
||||||
}
|
}
|
||||||
var err error
|
|
||||||
page.ArtBox, err = NewPdfRectangle(*boxArr)
|
page.ArtBox, err = NewPdfRectangle(*boxArr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
Loading…
x
Reference in New Issue
Block a user