0

次のコードを使用して、モノタッチで画像 (png ファイル) を印刷しています。

    void Print ()
        {
            UIImage image = myImgView.Image;
            NSMutableData data = new NSMutableData();
            UIGraphics.BeginPDFContext(data, new RectangleF(new PointF(0,0), image.Size), null);

            image.Draw(new RectangleF(0, 0, image.Size.Width, image.Size.Height));
            UIGraphics.EndPDFContent();

            var printInfo = UIPrintInfo.PrintInfo;

            printInfo.JobName = "Test: PDF Print";


            var printer = UIPrintInteractionController.SharedPrintController;

            printer.PrintInfo = printInfo;
            printer.PrintingItem = image; //url;
            printer.ShowsPageRange = true;

            printer.Present (true, (handler, completed, err) => {
                if (!completed && err != null){
                    Console.WriteLine ("error");
                }
            } );
}

画像は印刷されますが、ページ全体を占めます。画像を実際のサイズに制限するにはどうすればよいですか? (約 200px x 200px)

編集:

私のコードをこれに変更しましたが、それでも同じ結果です:

void Print ()
        {
            UIImage image = myImgView.Image;


            NSData data = new NSData();


//          var imageRect = new RectangleF (){
//              Height = image.Size.Height,
//              Width = image.Size.Width,
//              Size = image.Size
//
//          } ;


            var printInfo = UIPrintInfo.PrintInfo;

            printInfo.JobName = "Test";



            var printer = UIPrintInteractionController.SharedPrintController;

            printer.PrintInfo = printInfo;
            printer.PrintingItem = data;
            printer.PrintFormatter = new UIPrintFormatter(){
                MaximumContentWidth = image.Size.Width
            } ;

            printer.ShowsPageRange = true;

            printer.Present (true, (handler, completed, err) => {
                if (!completed && err != null) {
                    Console.WriteLine ("error");
                }
            } );
        }
4

1 に答える 1

0

https://github.com/xamarin/monotouch-samples/blob/master/RecipesAndPrinting/RecipePrintPageRenderer.csに示すように、カスタム UIPrintPageRenderer クラスを使用することになりました。

于 2012-12-12T13:35:33.620 に答える