| Index: printing/pdf_transform.h
|
| diff --git a/printing/pdf_transform.h b/printing/pdf_transform.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..af4b84fc6b692b0822ea5343cb1000d028d9d55d
|
| --- /dev/null
|
| +++ b/printing/pdf_transform.h
|
| @@ -0,0 +1,96 @@
|
| +// Copyright 2015 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#ifndef PRINTING_PDF_TRANSFORM_H_
|
| +#define PRINTING_PDF_TRANSFORM_H_
|
| +
|
| +#include "printing/printing_export.h"
|
| +
|
| +namespace gfx {
|
| +class Rect;
|
| +}
|
| +
|
| +namespace printing {
|
| +
|
| +// A rect struct for use with FPDF bounding box functions.
|
| +// With PDFs, origin is bottom-left.
|
| +struct PRINTING_EXPORT ClipBox {
|
| + float left;
|
| + float right;
|
| + float top;
|
| + float bottom;
|
| +};
|
| +
|
| +// Calculate the scale factor between |content_rect| and a page of size
|
| +// |src_width| x |src_height|.
|
| +//
|
| +// |content_rect| specifies the printable area of the destination page, with
|
| +// origin at left-bottom. Values are in points.
|
| +// |src_width| specifies the source page width in points.
|
| +// |src_height| specifies the source page height in points.
|
| +// |rotated| True if source page is rotated 90 degree or 270 degree.
|
| +PRINTING_EXPORT double CalculateScaleFactor(const gfx::Rect& content_rect,
|
| + double src_width,
|
| + double src_height,
|
| + bool rotated);
|
| +
|
| +// Make the default size to be letter size (8.5" X 11"). We are just following
|
| +// the PDFium way of handling these corner cases. PDFium always consider
|
| +// US-Letter as the default page size.
|
| +PRINTING_EXPORT void SetDefaultClipBox(bool rotated, ClipBox* clip_box);
|
| +
|
| +// Compute source clip box boundaries based on the crop box / media box of
|
| +// source page and scale factor.
|
| +// Returns the computed source clip box values.
|
| +//
|
| +// |media_box| The PDF's media box.
|
| +// |crop_box| The PDF's crop box.
|
| +// |scale_factor| specifies the scale factor that should be applied to source
|
| +// clip box boundaries.
|
| +// |rotated| True if source page is rotated 90 degree or 270 degree.
|
| +PRINTING_EXPORT ClipBox CalculateClipBoxBoundary(const ClipBox& media_box,
|
| + const ClipBox& crop_box,
|
| + double scale_factor,
|
| + bool rotated);
|
| +
|
| +// Calculate the clip box translation offset for a page that does need to be
|
| +// scaled. All parameters are in points.
|
| +//
|
| +// |content_rect| specifies the printable area of the destination page, with
|
| +// origin at left-bottom.
|
| +// |source_clip_box| specifies the source clip box positions, relative to
|
| +// origin at left-bottom.
|
| +// |offset_x| and |offset_y| will contain the final translation offsets for the
|
| +// source clip box, relative to origin at left-bottom.
|
| +PRINTING_EXPORT void CalculateScaledClipBoxOffset(
|
| + const gfx::Rect& content_rect,
|
| + const ClipBox& source_clip_box,
|
| + double* offset_x,
|
| + double* offset_y);
|
| +
|
| +// Calculate the clip box offset for a page that does not need to be scaled.
|
| +// All parameters are in points.
|
| +//
|
| +// |content_rect| specifies the printable area of the destination page, with
|
| +// origin at left-bottom.
|
| +// |rotation| specifies the source page rotation values which are N / 90
|
| +// degrees.
|
| +// |page_width| specifies the screen destination page width.
|
| +// |page_height| specifies the screen destination page height.
|
| +// |source_clip_box| specifies the source clip box positions, relative to origin
|
| +// at left-bottom.
|
| +// |offset_x| and |offset_y| will contain the final translation offsets for the
|
| +// source clip box, relative to origin at left-bottom.
|
| +PRINTING_EXPORT void CalculateNonScaledClipBoxOffset(
|
| + const gfx::Rect& content_rect,
|
| + int rotation,
|
| + int page_width,
|
| + int page_height,
|
| + const ClipBox& source_clip_box,
|
| + double* offset_x,
|
| + double* offset_y);
|
| +
|
| +} // namespace printing
|
| +
|
| +#endif // PRINTING_PDF_TRANSFORM_H_
|
|
|