এইচটিএমএল পৃষ্ঠা মুদ্রণের সময় মার্জিন


141

আমি মুদ্রণের জন্য পৃথক স্টাইল-শীট ব্যবহার করছি। স্টাইল-শীটে ডান এবং বাম মার্জিন সেট করা সম্ভব যা মুদ্রণ মার্জিন সেট করে (অর্থাত্ কাগজে মার্জিন)।

ধন্যবাদ।

উত্তর:


247

আপনি মুদ্রণের জন্য নির্দিষ্ট করার সময় আপনার cmবা mmইউনিট হিসাবে ব্যবহার করা উচিত । পিক্সেল ব্যবহারের ফলে ব্রাউজারটি এটি স্ক্রিনের মতো দেখতে অনুরূপ কিছুতে অনুবাদ করবে। ব্যবহার cmবা mmকাগজে ধারাবাহিক আকার নিশ্চিত করবে।

body
{
  margin: 25mm 25mm 25mm 25mm;
}

হরফ আকারের ptজন্য, প্রিন্ট মিডিয়া ব্যবহার করুন ।

নোট করুন যে সিএসএস স্টাইলে শরীরে মার্জিন সেট করা প্রিন্টারের ড্রাইভারের প্রিন্টারের মুদ্রণযোগ্য অঞ্চল বা ব্রাউজার দ্বারা নিয়ন্ত্রিত মার্জিন (কিছু ব্রাউজারের মুদ্রণ পূর্বরূপে সামঞ্জস্যযোগ্য হতে পারে) সংজ্ঞায়িত করবে না ... এটি প্রিন্টযোগ্য ক্ষেত্রের মধ্যে ডকুমেন্টের সবেমাত্র মার্জিন সেট করবে।

আপনার এটিও সচেতন হওয়া উচিত যে আই 7 ++ স্বয়ংক্রিয়ভাবে আকারটিকে সর্বোত্তমভাবে ফিট করে এবং আপনার ব্যবহার cmবা ব্যবহার করেও সবকিছু ভুল হয়ে যায় mm। এই আচরণটি ওভাররাইড করতে ব্যবহারকারীর অবশ্যই 'মুদ্রণ পূর্বরূপ' নির্বাচন করুন এবং তারপরে মুদ্রণের আকারটি সেট করতে হবে 100%(ডিফল্ট হয় Shrink To Fit)।

মুদ্রিত মার্জিনগুলিতে পূর্ণ নিয়ন্ত্রণের জন্য একটি সর্বোত্তম বিকল্প হ'ল @pageকাগজের মার্জিন সেট করার জন্য নির্দেশিকাটি ব্যবহার করা , যা এইচটিএমএল বডি এলিমেন্টের বাইরে কাগজের মার্জিনকে প্রভাবিত করবে, যা সাধারণত ব্রাউজার দ্বারা নিয়ন্ত্রিত হয়। Http://www.w3.org/TR/1998/REC-CSS2-19980512/page.html দেখুন ।
এটি বর্তমানে সাফারি বাদে সমস্ত বড় ব্রাউজারে কাজ করে।
ইন্টারনেট এক্সপ্লোরার-এ, প্রিন্টিংয়ের সেটিংসে প্রান্তিকতাটি এই মানটিতে প্রকৃতপক্ষে সেট করা থাকে এবং আপনি প্রাকদর্শন করেন তবে আপনি এটি ডিফল্ট হিসাবে পাবেন তবে ব্যবহারকারী এটি পূর্বরূপে এটি পরিবর্তন করতে পারে।

@page  
{ 
    size: auto;   /* auto is the initial value */ 

    /* this affects the margin in the printer settings */ 
    margin: 25mm 25mm 25mm 25mm;  
} 

body  
{ 
    /* this affects the margin on the content before sending to printer */ 
    margin: 0px;  
} 

সম্পর্কিত উত্তর: পৃষ্ঠা থেকে ব্রাউজার মুদ্রণ বিকল্পগুলি (শিরোলেখ, পাদচরণ, মার্জিন) অক্ষম করা হচ্ছে?


3
এটি এখন ক্রোম 18 এবং আই 9 তে কাজ করে (পূর্ববর্তী সংস্করণগুলির পরীক্ষা করে নি)। ফায়ারফক্স 12 তে এখনও কাজ করছে না, তবে আপনি একটি সার্ভার-সাইড সনাক্তকরণ করতে এবং একটি বডি ক্লাস যুক্ত <body class="firefox">করতে পারেন যাতে আপনার সিএসএসে আপনি এটি করতে পারেন body.firefox {margin: 0mm; padding: 0.25in;}, এটি আসলে একটি 0.75 ইঞ্চি মার্জিন কারণ ফায়ারফক্স ইতিমধ্যে 0.5in যুক্ত করেছে। আপনার যতক্ষণ প্রয়োজন প্রয়োজন = = 0.5 ইঞ্চি মার্জিনটি এটি কাজ করা উচিত।
মিঃফিউশন

7
@ পৃষ্ঠার জন্য +1! আমি একাধিক পৃষ্ঠাগুলি মুদ্রণ করায় যেহেতু এটি আমার প্রয়োজন ঠিক তা-ই।
এয়ারট্রাইক

2
এটি এখন ফায়ারফক্সের সাথেও কাজ করে। যেহেতু ফায়ারফক্সের অটো-আপডেটের রুটিনগুলি খুব ভাল, তাই আমাদের আর সমস্যা করার দরকার নেই। আমি IE, অপেরা, ক্রোম, ফায়ারফক্স এবং সাফারি পরীক্ষা করেছি। বর্তমানে যে ব্রাউজারটি এটি ব্যবহার করে না তা হ'ল সাফারি (উইন্ডোজের 5.1.7 সংস্করণ)। আমি ম্যাক পরীক্ষা করিনি।
আশ্চর্য

1
এটি কেবল প্রথম পৃষ্ঠায় শীর্ষ মার্জিন যুক্ত করে। : সকল পৃষ্ঠাতে একই মার্জিন সেট করার জন্য ভাল সমাধান stackoverflow.com/questions/37033766/...
besimple

@ বেইসিম্পল: নীচের উদাহরণটি দেখুন। ´ @ পেজ´ নির্দেশিকাটি ব্যবহার করা প্রতিটি পৃষ্ঠায় মার্জিন যুক্ত করবে।
অবাক

42

প্রথমত বলা হয়েছিল, আমি মুদ্রণের সময় আমার সমস্ত ব্যবহারকারীকে ক্রোম ব্যবহার করতে বাধ্য করার চেষ্টা করি কারণ অন্যান্য ব্রাউজারগুলি বিভিন্ন বিন্যাস তৈরি করে।

এই প্রশ্নের একটি উত্তর সুপারিশ করে:

@page {
  size: 210mm 297mm; 
  /* Chrome sets own margins, we change these printer settings */
  margin: 27mm 16mm 27mm 16mm; 
}

তবে আমার সমস্ত পৃষ্ঠাগুলি মুদ্রণের জন্য এই সিএসএসটি ব্যবহার করে শেষ করেছি:

@media print 
{
    @page {
      size: A4; /* DIN A4 standard, Europe */
      margin:0;
    }
    html, body {
        width: 210mm;
        /* height: 297mm; */
        height: 282mm;
        font-size: 11px;
        background: #FFF;
        overflow:visible;
    }
    body {
        padding-top:15mm;
    }
}



বিশেষ ক্ষেত্রে: দীর্ঘ টেবিলগুলি

যখন বেশ কয়েকটি পৃষ্ঠায় আমার একটি টেবিল প্রিন্ট করার দরকার ছিল, তখন margin:0দ্য @pageউইন্ডোজটি প্রান্তরে রক্তপাতের দিকে পরিচালিত করেছিল:

প্রান্ত রক্তপাত

এই উত্তরের সাথে এই ধন্যবাদটি সমাধান করতে পারলাম :

table { page-break-inside:auto }
tr    { page-break-inside:avoid; page-break-after:auto }
thead { display:table-header-group; }
tfoot { display:table-footer-group; }

প্লাস এর জন্য শীর্ষ-নীচের-মার্জিনগুলি সেট করে @page:

@page { 
    size: auto;
    margin: 20mm 0 10mm 0;
}
body {
    margin:0;
    padding:0;
}

ফলাফল:

রক্তপাত প্রান্ত সমাধান

আমি বরং এমন একটি সমাধান পছন্দ করব যা সংক্ষিপ্ত এবং সমস্ত ব্রাউজারের সাথে কাজ করে। আপাতত, আমি আশা করি উপরের তথ্যগুলি কিছু বিকাশকারীকে একই ধরণের সমস্যাগুলিতে সহায়তা করতে পারে।


1
ERPNext ব্যবহার করে রিপোর্ট মুদ্রণের সাথে কাজ করার সময় আপনার সমাধান অমূল্য প্রমাণিত হয়েছে। আমি স্বাচ্ছন্দ্যে আমার নিজস্ব কাস্টম প্রিন্ট ফর্ম্যাটগুলি বিকাশ করতে সক্ষম হয়েছি এবং এই পয়েন্টারগুলি প্রচুর সাহায্য করেছে!
ট্রপিক্যালামবলার

10

আপডেট করা হয়েছে, সহজ সমাধান

@media print {
   body {
       display: table;
       table-layout: fixed;
       padding-top: 2.5cm;
       padding-bottom: 2.5cm;
       height: auto;
   }
}

ওল্ড সলিউশন

প্রতিটি পৃষ্ঠার সাথে বিভাগ তৈরি করুন এবং মার্জিন, উচ্চতা এবং প্রস্থ সামঞ্জস্য করতে নীচের কোডটি ব্যবহার করুন।

আপনি যদি এ 4 আকার মুদ্রণ করেন।

তারপরে ব্যবহারকারী

আকার: 8.27in এবং 11.69 ইঞ্চি

@page Section1 {
    size: 8.27in 11.69in; 
    margin: .5in .5in .5in .5in; 
    mso-header-margin: .5in; 
    mso-footer-margin: .5in; 
    mso-paper-source: 0;
}



div.Section1 {
    page: Section1;
} 

তারপরে এতে আপনার সমস্ত সামগ্রীর সাথে একটি ডিভ তৈরি করুন।

<div class="Section1"> 
    type your content here... 
</div>

এটি আমার জন্য ক্রোম বা এফএফে কাজ করছে না। এছাড়াও, class=Section1হওয়া উচিত class="Section1"
নিউ এভারেস্ট

এই সহজ কোনো সলিউশন খোঁজেন হল: stackoverflow.com/questions/37033766/...
besimple

9

আমি ব্যক্তিগতভাবে এর চেয়ে পৃথক পরিমাপের একক ব্যবহার করার পরামর্শ দেব px। আমি মনে করি না যে মুদ্রণের ক্ষেত্রে পিক্সেলের খুব বেশি প্রাসঙ্গিকতা রয়েছে; আদর্শভাবে আপনি ব্যবহার করতে চাই:

  • পয়েন্ট (পিটি)
  • সেন্টিমিটার (সেমি)

আমি নিশ্চিত যে অন্যরাও রয়েছেন, এবং প্রিন্ট-সিএসএস সম্পর্কে একটি দুর্দান্ত নিবন্ধটি এখানে পাওয়া যাবে: এরিক মেয়ারের দ্বারা প্রিন্টে যাচ্ছেন


1
আপনি ঠিক বলেছেন যে pxমুদ্রণের সাথে তেমন প্রাসঙ্গিকতা নেই। তবে ব্রাউজারগুলি পিক্সেল ইউনিটগুলিকে "অনুবাদ" করে তাই এটি স্ক্রিনে দেখতে কেমন লাগে তার অনুরূপ। এটি "প্রিন্টারের রেজোলিউশন ডটস" পিক্সেল হিসাবে ব্যবহার করে না (thankশ্বরের ধন্যবাদ ...)
অবাক

1

আমি আরও পিটি বনাম সেমি বা মিমি সুপারিশ করি কারণ এটি আরও সুনির্দিষ্ট। এছাড়াও, আমি ক্রোমে কাজ করার জন্য @ পৃষ্ঠাগুলি পেতে পারি না (সংস্করণ 30.0.1599.69 মি) এটি বড় বা ছোট মার্জিনের জন্য আমি যে কোনও কিছু রেখেছি তা উপেক্ষা করে। তবে, আপনি এটিকে দস্তাবেজের বডি মার্জিনের সাথে কাজ করতে পারেন, অদ্ভুত।


0

যদি আপনি টার্গেট পেপারের আকারটি জানেন তবে আপনি নিজের সামগ্রীটি সেই নির্দিষ্ট আকারের সাথে একটি ডিআইভিতে রাখতে পারেন এবং মুদ্রণের মার্জিন অনুকরণ করতে সেই ডিআইভিতে একটি মার্জিন যুক্ত করতে পারেন। দুর্ভাগ্যক্রমে, আমি বিশ্বাস করি না যে মুদ্রণ ডায়ালগ বক্সটি বাদ দিয়ে প্রিন্ট কার্যকারিতার উপর আপনার অতিরিক্ত নিয়ন্ত্রণ রয়েছে।


ধন্যবাদ। কাগজের আকার নির্বিশেষে বাম এবং ডানদিকে লিক x পিক্সেল নির্দিষ্ট করা সম্ভব নয় কি? শ্রদ্ধা
কোব্রা

1
আমার ধারণা, আপনি যদি পিতামাতার ডিআইভির আকারটি 100% এ সেট করেন এবং এতে কুড়াল পিক্সেল মার্জিন যুক্ত করেন তবে এটি সম্ভব হতে পারে।
jonjbar
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.