PDF Sayfa Boyutları .NET - Genişlik ve Yüksekliği C# ile Çıkarma

Giriş

PDF belgeleriyle .NET uygulamanızda uğraşırken, her sayfa için get pdf page size almanız gerektiğini hiç düşündünüz mü? Yalnız değilsiniz. İster bir belge görüntüleyici, ister baskı düzeni oluşturuyor olun, ister formları işliyor olun, doğru sayfa boyutları kusursuz bir kullanıcı deneyiminin temelini oluşturur.

Bu kapsamlı rehberde, GroupDocs.Annotation for .NET kullanarak PDF sayfa boyutlarını çıkarmayı adım adım göstereceğiz—bu görev için en güvenilir kütüphanelerden biri. Sonunda, herhangi bir PDF belgesinden genişlik, yükseklik ve diğer önemli meta verileri alan çalışan bir koda sahip olacaksınız.

Hızlı Yanıtlar

  • .NET’te pdf sayfa boyutunu nasıl alırım? Use Annotator.GetDocumentInfo() and read PageInfo.Width / PageInfo.Height.
  • pdf sayfa genişlik yüksekliği çıkarımını hangi kütüphane destekler? GroupDocs.Annotation for .NET (v25.4.0+).
  • Temel boyut çıkarımı için lisansa ihtiyacım var mı? Ücretsiz deneme çalışır; üretim için ticari lisans gereklidir.
  • Hangi birimler döndürülür? Points (1/72 inch); ihtiyaca göre inç veya milimetreye dönüştürün.
  • Büyük PDF’leri verimli bir şekilde işleyebilir miyim? Evet—GroupDocs.Annotation, tam dosyayı belleğe yüklemeden meta verileri okur.

get pdf page size nedir?

Get pdf page size, bir PDF sayfasının genişlik ve yüksekliğinin programatik olarak alınması anlamına gelir. Bu işlem .NET uygulamalarında düzen hesaplamaları, baskı hazırlığı ve form alanı konumlandırması için esastır.

.NET Geliştirmede PDF Sayfa Boyutlarının Önemi

Koda geçmeden önce, pdf sayfa genişlik yüksekliği bilmenin neden önemli olduğunu inceleyelim. Bu sayılar sadece bilgi değil—gerçek dünyadaki işlevselliği yönlendirir:

  • Düzen Yönetimi – Duyarlı görüntüleyiciler, tam sayfa boyutuna göre otomatik ölçeklendirme yapabilir, garip kaydırma çubuklarını ortadan kaldırır.
  • Baskı Optimizasyonu – Hassas boyutlar, kağıt israfını ve ticari iş akışlarında hizalanmamış baskıları önler.
  • Form İşleme – Çıkarma koordinatları doğru sayfa boyutuna dayanır; 2 mm’lik bir hata veri yakalamayı bozabilir.
  • Kaynak Planlaması – Büyük, farklı boyutlu PDF’ler farklı bellek stratejileri gerektirir; erken boyut bilgisi daha akıllı toplu işleme sağlar.

Önkoşullar

Gerekli Kütüphaneler ve Sürümler

  • GroupDocs.Annotation for .NET (Sürüm 25.4.0 veya sonrası). Bu sürüm 50+ giriş ve çıkış formatını destekler ve tüm dosyayı belleğe yüklemeden çok sayfalı PDF’leri işleyebilir.
  • .NET Framework 4.6.1+ veya .NET Core 2.0+

Ortam Kurulum Gereksinimleri

  • Visual Studio 2019 veya sonrası (Community sürümü sorunsuz çalışır)
  • Bir test PDF dosyası (farklı tipleri nasıl ele alacağınızı göstereceğiz)
  • C#’ta using ifadeleri ve nesne imhası konusunda temel bilgi

Bilgi Önkoşulları

Sadece şunlara ihtiyacınız var:

  • C# temelleri
  • NuGet paket yönetimi temelleri
  • .NET’te basit dosya G/Ç

Her şey hazır mı? Harika—kütüphaneyi kurmaya başlayalım.

GroupDocs.Annotation for .NET Kurulumu

GroupDocs.Annotation kurulumu basittir, ancak iş akışınıza bağlı olarak birkaç farklı yöntem vardır.

Yöntem 1: NuGet Paket Yöneticisi Konsolunu Kullanma

Visual Studio’da Paket Yöneticisi Konsolunu açın ve şu komutu çalıştırın:

Install-Package GroupDocs.Annotation -Version 25.4.0

Yöntem 2: .NET CLI Kullanma

Komut satırı araçlarını tercih ediyorsanız:

dotnet add package GroupDocs.Annotation --version 25.4.0

Yöntem 3: Görsel Paket Yöneticisi

  1. Solution Explorer’da projenize sağ tıklayın
  2. Manage NuGet Packages seçeneğini seçin
  3. GroupDocs.Annotation arayın
  4. Install‘a tıklayın

Lisans Seçenekleri (Size Uyanı Seçin)

  • Free Trial – Boyut çıkarımı dahil temel özellikler, düşük kullanım sınırlamalarıyla mevcuttur—kavram kanıtı çalışmaları için mükemmeldir.
  • Temporary License – Değerlendirme sırasında tam işlevsellik için 30 günlük geçici anahtar isteyin.
  • Commercial License – Üretim dağıtımları için gereklidir; fiyatlandırma geliştirici sayısı ve dağıtım modeline göre ölçeklenir.

Hızlı Kurulum Doğrulaması

Her şeyin doğru bağlandığını doğrulamak için basit bir test:

using GroupDocs.Annotation;

// This should compile without errors if installation succeeded
using (Annotator annotator = new Annotator(@"path\to\your\test.pdf"))
{
    Console.WriteLine("GroupDocs.Annotation is ready to use!");
}

Bu kod derlenip istisna atmadan çalışıyorsa, sayfa boyutlarını çıkarmaya hazırsınız.

Annotator sınıfı nedir?

Annotator sınıfı, GroupDocs.Annotation’ın bellek içinde bir PDF belgesini temsil eden temel nesnesidir ve meta veri okuma, ek açıklama ekleme ve sayfa bilgisi çıkarma yöntemleri sağlar. Dosya işlemlerini kapsüller, akışlardan yüklemeyi destekler ve sonraki tüm işlemlerin bir Annotator örneği üzerinden yürütülmesini sağlayarak iş akışı yönetimini basitleştirir.

GroupDocs.Annotation kullanarak get pdf page size nasıl alınır?

GetDocumentInfo() bir DocumentInfo nesnesi döndürür; bu nesne toplam PDF meta verilerini, sayfa sayısını ve sayfa detaylarının koleksiyonunu içerir. PDF’nizi new Annotator("file.pdf") ile yükleyin ve bu yöntemi çağırın; Pages koleksiyonundaki her PageInfo Width ve Height değerlerini tutar. Bu iki adımlı yaklaşım, tüm dosyayı ayrıştırmadan anında nokta cinsinden boyutları sağlar.

Adım‑Adım Uygulama Kılavuzu

Adım 1: Annotator’ı PDF’nizle Başlatın

PDF dosyanıza işaret eden bir Annotator örneği oluşturun. Dosya tutamacının hemen serbest bırakılması için her zaman bir using bloğu içinde kullanın.

using (Annotator annotator = new Annotator(@"YOUR_DOCUMENT_DIRECTORY\INPUT_PDF"))
{
    // All our dimension extraction magic happens here
}

Pro İpucu: Doğru imha, özellikle toplu işte onlarca büyük PDF işlenirken bellek sızıntılarını önler.

Adım 2: Belge Bilgilerini Alın

DocumentInfo, toplam sayfa sayısı ve her sayfa için bir PageInfo nesnesi koleksiyonu gibi genel PDF meta verilerini tutan bir nesnedir.
GroupDocs.Annotation, meta veri çıkarımını tek satırda yapar:

IDocumentInfo info = annotator.Document.GetDocumentInfo();

Döndürülen DocumentInfo nesnesi şunları sağlar:

  • Toplam sayfa sayısı
  • Dosya formatı detayları
  • Her girişin genişlik, yükseklik, dönüş ve daha fazlasını içerdiği bir Pages listesi

Adım 3: Alınan Verileri Doğrulayın

Sayfalar üzerinde döngüye girmeden önce, belge bilgisinin null olmadığını ve sayfa koleksiyonunun giriş içerdiğini doğrulayın.

if (info.PagesInfo != null && info.PagesInfo.Count > 0)
{
    Console.WriteLine($"\t Document info: Type {info.FileType}, size = {info.Size}, pages = {info.PageCount}");
}
else
{
    Console.WriteLine("No page information available - check your PDF file");
    return;
}

Bu savunma kontrolü null referans hatalarını önler ve PDF bozuksa erken geri bildirim sağlar.

Adım 4: Her Sayfa İçin Genişlik ve Yüksekliği Çıkarın

PageInfo, bir sayfanın genişlik, yükseklik ve dönüş açısı gibi özelliklerini temsil eder.
Pages koleksiyonunda döngü yapın ve Width ve Height değerlerini okuyun. Değerlerin points (1 point = 1/72 inch) cinsinden olduğunu unutmayın.

foreach (var page in info.PagesInfo)
{
    Console.WriteLine($"\t\t page #{page.PageNumber}: {page.Width}x{page.Height}");
}

Anahtar Noktalar

  • Genişlik önce, ardından yükseklik.
  • Sayfa numaraları 1‑tabanlıdır, izleyicilerde görülenle eşleşir.
  • Koordinatları ayarlamanız gerekiyorsa dönüş bilgisi de mevcuttur.

Tam Çalışan Örnek (Metot)

Yukarıdaki adımları yeniden kullanılabilir bir metoda sarabilirsiniz:

using GroupDocs.Annotation;
using System;

public void ExtractPdfPageDimensions(string pdfPath)
{
    try
    {
        using (Annotator annotator = new Annotator(pdfPath))
        {
            IDocumentInfo info = annotator.Document.GetDocumentInfo();
            
            if (info.PagesInfo != null && info.PagesInfo.Count > 0)
            {
                Console.WriteLine($"Document: {info.FileType}, {info.Size} bytes, {info.PageCount} pages");
                
                foreach (var page in info.PagesInfo)
                {
                    Console.WriteLine($"Page {page.PageNumber}: {page.Width} x {page.Height} points");
                }
            }
            else
            {
                Console.WriteLine("Could not retrieve page information");
            }
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine($"Error processing PDF: {ex.Message}");
    }
}

Yaygın Tuzaklar ve Nasıl Kaçınılır

Basit kodla bile, geliştiriciler öngörülebilir sorunlarla karşılaşır. Aşağıda en yaygın tuzaklar ve kanıtlanmış çözümler yer alıyor.

Dosya Yolu Sorunları

Sorun: Geliştirme sırasında “Dosya bulunamadı” hataları.
Çözüm: Test ederken mutlak yollar kullanın ve Annotator oluşturulmadan önce dosyanın varlığını her zaman doğrulayın.

if (!File.Exists(pdfPath))
{
    throw new FileNotFoundException($"PDF file not found: {pdfPath}");
}

İzin Sorunları

Sorun: Uygulamanın PDF dosyasına okuma erişimi yok, özellikle web sunucularında.
Çözüm: Uygulama havuzu kimliğine uygun okuma izinleri verin veya kısıtlı klasörler için taklit (impersonation) kullanın.

Bozuk PDF İşleme

Sorun: Bazı PDF’ler kısmen hasar görmüş veya standart dışı özellikler kullanıyor.
Çözüm: Çıkarma mantığını bir try‑catch bloğuna alın ve net bir hata mesajı gösterin. GroupDocs.Annotation, desteklenmeyen yapılar için bir DocumentException fırlatır.

Büyük Dosyalarda Bellek Sızıntıları

Sorun: Annotator örneklerini imha etmeden birçok büyük PDF işlemek bellek tükenmesi hatalarına yol açar.
Çözüm: Her zaman using ifadeleri kullanın ve dosyaları daha küçük partilerde veya akış modunda işlemeyi düşünün.

Sürüm Uyumluluğu

Sorun: Farklı GroupDocs kütüphane sürümlerinin karışması tip uyumsuzluklarına neden olabilir.
Çözüm: Çözüm boyunca tek bir sürüm standardize edin ve tüm ilgili paketleri birlikte güncelleyin.

Gerçek‑Dünya Uygulamaları

retrieve pdf width height kavramını anlamak güçlü senaryoların kilidini açar:

Belge Görüntüleme Uygulamaları

Duyarlı görüntüleyiciler, sayfa boyutlarına göre otomatik olarak ilk yakınlaştırma seviyesini ayarlayabilir ve manuel ayarlama yapmadan “ekrana sığdır” deneyimi sunar.

// Example: Calculate optimal zoom for viewport
double optimalZoom = Math.Min(viewportWidth / pageWidth, viewportHeight / pageHeight);

Otomatik Rapor Oluşturma

Birden fazla PDF’yi tek bir raporda birleştirirken, her sayfanın boyutunu bilmek tutarlı ölçeklendirme sağlar ve beklenmeyen sayfa kırılmalarını önler.

Baskı Yönetim Sistemleri

Tam boyutlar, optimal kağıt kullanımını hesaplamanızı, dikey vs. yatay yönelimleri tespit etmenizi ve belgeleri ticari yazıcılara göndermeden önce ön kontrol (pre‑flight) yapmanızı sağlar.

Form İşleme Çözümleri

Sayfa boyutundan türetilen doğru koordinatlar, farklı düzenlerdeki PDF’lerde onay kutuları, imzalar ve metin alanlarının güvenilir çıkarımını sağlar.

Dijital Varlık Yönetimi

PDF’leri boyut meta verisiyle etiketleyerek hızlı aramaları (ör. “tüm A4‑boyutlu belgeleri göster”) kolaylaştırın ve kataloglama verimliliğini artırın.

Performans Optimizasyon İpuçları

Prototipten üretime geçerken performans kritik hale gelir.

Toplu İşleme Stratejisi

Benzer işlemleri gruplayarak ek yükü azaltın. Örneğin, bir dosya topluluğu için meta verileri okuyun, sonuçları saklayın ve ardından ek açıklamaları ikinci bir geçişte işleyin.

var results = new List<PageDimensionResult>();
foreach (var pdfFile in pdfFiles.Take(10)) // Process in batches of 10
{
    // Extract dimensions and add to results
}

Sık Erişilen Boyutları Önbelleğe Alma

Aynı PDF’ler tekrar tekrar sorgulanıyorsa, DocumentInfo nesnelerini thread‑safe bir sözlükte önbelleğe alın. Kaynak dosya değiştiğinde önbelleği geçersiz kılmayı unutmayın.

private static readonly Dictionary<string, IDocumentInfo> _dimensionCache = 
    new Dictionary<string, IDocumentInfo>();

Büyük Dosyalar için Asenkron İşleme

async/await desenlerini kullanarak UI iş parçacıklarını yanıt verir tutun; GroupDocs.Annotation arka planda meta verileri okurken.

public async Task<List<PageInfo>> ExtractDimensionsAsync(string pdfPath)
{
    return await Task.Run(() => {
        // Your dimension extraction code here
    });
}

Bellek Yönetimi En İyi Uygulamaları

  • Her Annotator örneğini hemen imha edin.
  • Bellek ayak izini düşük tutmak için büyük koleksiyonları 20–50 dosya parçalarına bölerek işleyin.
  • Performans sayaçları veya profil araçlarıyla bellek kullanımını izleyin.
  • Yüksek dönüş bekliyorsanız önbellek nesneleri için zayıf referanslar (weak references) kullanın.

İleri Düzey Kullanım Senaryoları

Temel çıkarım konusunda rahatladıktan sonra bu gelişmiş senaryoları keşfedin.

Karışık‑Boyutlu Belgelerle Çalışma

Bazı PDF’ler farklı boyutlarda sayfalar içerir (ör. A4 kapak sayfası ardından A5 iç sayfalar). Ardışık PageInfo.Width/Height değerlerini karşılaştırarak boyut değişikliklerini tespit edin ve koşullu mantık uygulayın.

var pageSizes = info.PagesInfo.Select(p => new { p.PageNumber, p.Width, p.Height }).ToList();
var uniqueSizes = pageSizes.Select(p => new { p.Width, p.Height }).Distinct().Count();

if (uniqueSizes > 1)
{
    Console.WriteLine("Document contains multiple page sizes");
}

Yön Algılama

Genişlik ve yüksekliği karşılaştırarak dikey vs. yatay belirleyin. Bu, görüntüleyicilerde sayfaları otomatik döndürmek veya yön‑duyarlı küçük resimler oluşturmak için faydalıdır.

foreach (var page in info.PagesInfo)
{
    string orientation = page.Width > page.Height ? "Landscape" : "Portrait";
    Console.WriteLine($"Page {page.PageNumber}: {orientation}");
}

Diğer GroupDocs Özellikleriyle Entegrasyon

Boyut çıkarımını ek açıklama API’leriyle birleştirerek damgaları tam olarak yerleştirin veya dönüşüm API’leriyle orijinal sayfa boyutuna saygı gösteren görüntüler oluşturun.

Sık Sorulan Sorular

S: PDF sayfa boyutlarını lisans olmadan çıkarabilir miyim?
C: Evet. Ücretsiz deneme sürümü temel boyut çıkarımını destekler, ancak oturum başına işlenen sayfa sayısına bir sınırlama getirebilir.

S: Genişlik ve yükseklik ölçüleri hangi birimlerde?
C: GroupDocs.Annotation boyutları points (1 point = 1/72 inch) cinsinden döndürür. İnç’e dönüştürmek için 72’ye bölün, milimetreye dönüştürmek için 0.352778 ile çarpın.

S: Şifre korumalı PDF’leri nasıl işlerim?
C: Annotator oluştururken şifreyi LoadOptions aracılığıyla geçirin: new Annotator(path, new LoadOptions { Password = "your‑password" }).

S: Bu, Azure veya AWS gibi bulut depolama hizmetlerinde saklanan PDF’lerle çalışabilir mi?
C: Evet. Dosyayı önce yerel bir Stream‘e indirin, ardından ara dosyalardan kaçınmak için akış‑tabanlı Annotator yapıcıyı kullanın.

S: Büyük PDF’lerden boyut çıkarımının performans etkisi nedir?
C: GroupDocs.Annotation yalnızca PDF’nin çapraz referans tablosunu ve sayfa sözlüklerini okur, bu yüzden 100 MB’nin altındaki çoğu PDF tipik sunucu donanımında 1 saniyeden kısa sürede işlenir.

S: Döndürülmüş sayfalara sahip PDF’leri nasıl ele alırım?
C: PageInfo.Rotation özelliği dönüş açısını gösterir. Sayfa 90° veya 270° döndürülmüşse, görüntülenen boyutları elde etmek için genişlik ve yükseklik değerlerini değiştirin.

S: Yalnızca belirli sayfalardan boyut çıkarabilir miyim?
C: Evet. GetDocumentInfo() çağrısından sonra, Pages koleksiyonunu PageNumber ile filtreleyerek tek tek sayfalara hedefleyebilirsiniz.

S: Bu, PDF/A formatındaki belgelerle çalışır mı?
C: Kesinlikle. GroupDocs.Annotation, PDF/A‑1, PDF/A‑2 ve PDF/A‑3 standartlarını tam olarak destekler.

S: “Belge yüklenemedi” hatalarını nasıl gideririm?
C: Dosya izinlerini doğrulayın, PDF okuyucusunda açarak dosyanın bozuk olmadığından emin olun ve desteklenen bir PDF sürümü (1.4–2.0) kullandığınızı kontrol edin.

S: Boyutları points yerine piksellerde alabilir miyim?
C: Manuel olarak dönüştürün: pixels = points * DPI / 72. Tipik ekran DPI’si 96 ise, points değerini 1.3333 ile çarpın.

Temel Kaynaklar


Last Updated: 2026-06-16
Tested With: GroupDocs.Annotation 25.4.0 for .NET
Author: GroupDocs

İlgili Eğitimler