Altbilgi içeriğine atla
NODE YARDıM

linkify-react (Nasıl Çalışır: Geliştiriciler İçin Bir Kılavuz)

Geniş web geliştirme dünyasında, metin içinde tıklanabilir bağlantılar veya çapa etiketleri oluşturmak temel bir görevdir. İster bir blog, sosyal medya platformu veya bir e-posta istemcisi inşa ediyor olun, URL'lerin, e-posta adreslerinin ve diğer metinlerin otomatik olarak tespit edilip tıklanabilir bağlantılara dönüştürülme kabiliyeti, kesintisiz bir kullanıcı deneyimi sağlamak için çok önemlidir. Linkify React ile tanışın - bu süreçte React uygulamalarında kolaylık sağlamak için tasarlanmış güçlü bir npm paketi. Bu makalede, React projelerinizde bağlantı oluşturmayı basitleştirmek için Linkify'i nasıl kullanabileceğinizi, kullanımını göstermek için kod örnekleri eşliğinde keşfedeceğiz.

Bunun yanında, size web sayfalarınızdan yüksek kaliteli PDF belgeleri oluşturmanıza olanak tanıyan çok yönlü bir kütüphane olan IronPDF'i tanıtacağız. IronPDF'i Linkify ile birlikte kullanarak, Linkify tarafından tanımlanan ve dönüştürülen tıklanabilir bağlantıları koruyan PDF'ler oluşturmak, belgelerinizin web içeriğinizle aynı etkileşimi sürdürmesini sağlamak için nasıl kolayca oluşturabileceğinizi göstereceğiz.

Linkify React Bileşeni ile Başlarken

Linkify React, içindeki URL'ler, e-posta adresleri ve diğer keşfedilmiş bağlantıları içeren düz metni, çocuk dizeler içinde tıklanabilir bağlantılara dönüştüren hafif ve kullanımı kolay bir npm paketidir. Manuel bağlantı ayrıştırma ve formatlama ihtiyacını ortadan kaldırarak, geliştiricilere değerli zaman ve çaba tasarrufu sağlar. Linkify'i React uygulamalarınıza nasıl entegre edebileceğinize bir göz atalım.

Kurulum

React Linkify ile başlamak için, önce projenizde bir bağımlılık olarak yüklemeniz gerekir. Bunu npm veya yarn kullanarak yapabilirsiniz. Terminalinizi açın ve aşağıdaki komutu çalıştırın:

npm install react-linkify
# or
yarn add react-linkify
npm install react-linkify
# or
yarn add react-linkify
SHELL

Kullanım

React Linkify yüklendiğinde, onu React bileşenlerinize kolayca entegre edebilirsiniz. React Linkify'in metin içeriğinde tıklanabilir bağlantılar oluşturmak için nasıl kullanılacağını gösteren basit bir örnek:

import React from 'react';
import Linkify from 'react-linkify';

// A React component to display clickable links
const MyComponent = () => {
  return (
    <div>
      <h1>Clickable Links with React Linkify</h1>
      <Linkify>
        <p>
          Check out this cool website: https://example.com
          <br />
          You can also reach me at hello@example.com
        </p>
      </Linkify>
    </div>
  );
};

export default MyComponent;
import React from 'react';
import Linkify from 'react-linkify';

// A React component to display clickable links
const MyComponent = () => {
  return (
    <div>
      <h1>Clickable Links with React Linkify</h1>
      <Linkify>
        <p>
          Check out this cool website: https://example.com
          <br />
          You can also reach me at hello@example.com
        </p>
      </Linkify>
    </div>
  );
};

export default MyComponent;
JAVASCRIPT

Bu örnekte, react-linkify paketinden Linkify bileşenini içe aktarıyor ve metin içeriğimizi onun içine sarıyoruz. React Linkify, metin içindeki URL'leri ve e-posta adreslerini otomatik olarak algılar ve onları tıklanabilir bağlantılara dönüştürür.

Özelleştirme

Linkify, oluşturulan bağlantıların davranışını ve görünümünü özelleştirmek için çeşitli prop'lar, nitelikler ve seçenekler sunar. Örneğin, bağlantıların nasıl açılacağını kontrol etmek için target özniteliklerini belirtebilirsiniz. React Linkify'in davranışını nasıl özelleştirebileceğiniz:

<Linkify properties={{target: '_blank'}}>
  <p>
    Clickable links will open in a new tab: https://example.com
  </p>
</Linkify>
<Linkify properties={{target: '_blank'}}>
  <p>
    Clickable links will open in a new tab: https://example.com
  </p>
</Linkify>
JAVASCRIPT

IronPDF Tanıtımı

IronPDF, Node.js uygulamaları içinde PDF üretimini kolaylaştırmak için tasarlanmış güçlü bir npm paketidir. HTML içeriği, URL'ler veya mevcut PDF dosyalarından PDF belgeleri oluşturmanızı sağlar. İster faturalar, raporlar ister herhangi bir türde belge üretin, IronPDF, sezgisel API ve güçlü özellik seti ile süreci basitleştirir.

linkify-react (Nasıl Çalışır: Geliştiriciler İçin Bir Kılavuz): Şekil 1 - IronPDF for Node.js: Node.js PDF Kütüphanesi Web Sitesi

IronPDF'in Ana Özellikleri

1. HTML'den PDF'ye Dönüşüm

HTML öğelerini zahmetsizce PDF belgelerine dönüştürün. Bu özellik, web içeriğinden dinamik PDF'ler oluşturmak için özellikle kullanışlıdır.

2. URL'den PDF'ye Dönüşüm

URL'lerden doğrudan PDF'ler oluşturun. Bu, web sayfalarının içeriğini yakalamanıza ve bunları programatik olarak PDF dosyaları olarak kaydetmenize olanak tanır.

3. PDF Manipülasyonu

Mevcut PDF belgelerini birleşik, parçalara ayırın ve kolayca manipüle edin. IronPDF, sayfaların eklenmesi, belgelerin bölünmesi ve daha fazlasını içeren, PDF dosyalarını manipüle etme işlevsellikleri sağlar.

4. PDF Güvenlik

PDF belgelerinizi parolalarla şifreleyerek veya dijital imzalar uygulayarak güvence altına alın. IronPDF, hassas belgelerinizi yetkisiz erişime karşı koruma seçenekleri sunar.

5. Yüksek Kalite Çıktı

Metin, görseller ve biçimlendirmeyi doğru şekilde render ederek yüksek kaliteli PDF belgeler üretilir. IronPDF, oluşturduğunuz PDF'lerin orijinal içeriğe sadık kalmasını sağlar.

6. Çapraz Platform Uyumluluğu

IronPDF, Windows, Linux ve macOS dahil olmak üzere çeşitli platformlarla uyumludur ve geniş bir geliştirme ortamı yelpazesine uygundur.

7. Basit Entegrasyon

IronPDF, npm paketi kullanarak Node.js uygulamalarınıza kolayca entegre edilir. API, iyi belgelenmiştir ve projelerinize PDF oluşturma yeteneklerini entegre etmeyi kolaylaştırır.

İster bir web uygulaması, bir sunucu tarafı betik, isterse bir komut satırı aracı oluşturuyor olun, IronPDF, profesyonel düzeyde PDF belgeleri verimli ve güvenilir bir şekilde oluşturmanızı sağlar.

IronPDF ve Linkify React Kullanarak PDF Belgeleri Üretin

Bağımlılıkları Kurun

İlk olarak, aşağıdaki komutla yeni bir Next.js projesi oluşturun (henüz yapmadıysanız):

npx create-next-app@latest linkify-ironpdf --use-npm --example "https://github.com/vercel/next-learn/tree/main/basics/learn-starter"
npx create-next-app@latest linkify-ironpdf --use-npm --example "https://github.com/vercel/next-learn/tree/main/basics/learn-starter"
SHELL

Sonrasında, proje dizinine gidin:

cd linkify-ironpdf
cd linkify-ironpdf
SHELL

Gerekli paketleri kurun:

yarn add @ironsoftware/ironpdf @ironsoftware/ironpdf-engine-windows-x64
yarn add react-linkify
yarn add @ironsoftware/ironpdf @ironsoftware/ironpdf-engine-windows-x64
yarn add react-linkify
SHELL

PDF Oluşturma

Şimdi, IronPDF kullanarak bir PDF üretmenin basit bir örneğini oluşturalım. Next.js bileşeninizde (örneğin, pages/index.tsx), aşağıdaki kodu ekleyin:

PDF Oluşturma API'si: İlk adım, PDF belgesini oluşturmak için bir arka plan API oluşturmak. IronPDF yalnızca sunucu tarafında çalıştığı için, bir kullanıcının PDF oluşturmak istediğinde çağırabileceği bir API oluşturmamız gerekiyor. Yol pages/api/pdf.js içinde bir dosya oluşturun ve aşağıdaki içerikleri ekleyin.

IronPDF ayrıca bir lisans anahtarı gerektirir, bunu lisans sayfasından alabilir ve aşağıdaki koda yerleştirebilirsiniz:

// pages/api/pdf.js

import { IronPdfGlobalConfig, PdfDocument } from "@ironsoftware/ironpdf";

// Apply your IronPDF license key
IronPdfGlobalConfig.getConfig().licenseKey = "Your license key goes here";

export default async function handler(req, res) {
  try {
    const url = req.query.url;
    const pdf = await PdfDocument.fromUrl(url);
    const data = await pdf.saveAsBuffer();
    console.error('data PDF:', data);
    res.setHeader('Content-Type', 'application/pdf');
    res.setHeader('Content-Disposition', 'attachment; filename=awesomeIron.pdf');
    res.send(data);
  } catch (error) {
    console.error('Error generating PDF:', error);
    res.status(500).end();
  }
}
// pages/api/pdf.js

import { IronPdfGlobalConfig, PdfDocument } from "@ironsoftware/ironpdf";

// Apply your IronPDF license key
IronPdfGlobalConfig.getConfig().licenseKey = "Your license key goes here";

export default async function handler(req, res) {
  try {
    const url = req.query.url;
    const pdf = await PdfDocument.fromUrl(url);
    const data = await pdf.saveAsBuffer();
    console.error('data PDF:', data);
    res.setHeader('Content-Type', 'application/pdf');
    res.setHeader('Content-Disposition', 'attachment; filename=awesomeIron.pdf');
    res.send(data);
  } catch (error) {
    console.error('Error generating PDF:', error);
    res.status(500).end();
  }
}
JAVASCRIPT

Aşağıda, kullanıcı için PDF oluşturma sayfasını ayarlayan index.js kodu bulunmaktadır:

import Head from "next/head";
import styles from "../styles/Home.module.css";
import React, { useState } from "react";
import Linkify from 'react-linkify';

// Home component for link conversion and PDF generation
export default function Home() {
  const [text, setText] = useState("");

  // Function to generate PDF from entered URL
  const generatePdf = async () => {
    try {
      const response = await fetch("/api/pdf?url=" + text);
      const blob = await response.blob();
      const url = window.URL.createObjectURL(new Blob([blob]));
      const link = document.createElement("a");
      link.href = url;
      link.setAttribute("download", "awesomeIron.pdf");
      document.body.appendChild(link);
      link.click();
      link.parentNode.removeChild(link);
    } catch (error) {
      console.error("Error generating PDF:", error);
    }
  };

  // Handle changes in the input text field
  const handleChange = (event) => {
    setText(event.target.value);
  };

  return (
    <div className={styles.container}>
      <Head>
        <title>Generate PDF Using IronPDF</title>
        <link rel="icon" href="/favicon.ico" />
      </Head>
      <main>
        <h1>Demo Linkify and Generate PDF Using IronPDF</h1>
        <p>
          <span>Enter URL to Linkify and Convert to PDF:</span>{" "}
        </p>
        <input type="text" value={text} onChange={handleChange} />
        <Linkify properties={{target: '_blank'}}>
          <p>
            Clickable links from input text: {text}
          </p>
        </Linkify>
        <button style={{margin: 20, padding: 5}} onClick={generatePdf}>
          Generate PDF From Link
        </button>
      </main>
      <style jsx>{`
        main {
          padding: 5rem 0;
          flex: 1;
          display: flex;
          flex-direction: column;
          justify-content: center;
          align-items: center;
        }
        footer {
          width: 100%;
          height: 100px;
          border-top: 1px solid #eaeaea;
          display: flex;
          justify-content: center;
          align-items: center;
        }
        footer img {
          margin-left: 0.5rem;
        }
        footer a {
          display: flex;
          justify-content: center;
          align-items: center;
          text-decoration: none;
          color: inherit;
        }
        code {
          background: #fafafa;
          border-radius: 5px;
          padding: 0.75rem;
          font-size: 1.1rem;
          font-family:
            Menlo,
            Monaco,
            Lucida Console,
            Liberation Mono,
            DejaVu Sans Mono,
            Bitstream Vera Sans Mono,
            Courier New,
            monospace;
        }
      `}</style>
      <style jsx global>{`
        html,
        body {
          padding: 0;
          margin: 0;
          font-family:
            -apple-system,
            BlinkMacSystemFont,
            Segoe UI,
            Roboto,
            Oxygen,
            Ubuntu,
            Cantarell,
            Fira Sans,
            Droid Sans,
            Helvetica Neue,
            sans-serif;
        }
        * {
          box-sizing: border-box;
        }
      `}</style>
    </div>
  );
}
import Head from "next/head";
import styles from "../styles/Home.module.css";
import React, { useState } from "react";
import Linkify from 'react-linkify';

// Home component for link conversion and PDF generation
export default function Home() {
  const [text, setText] = useState("");

  // Function to generate PDF from entered URL
  const generatePdf = async () => {
    try {
      const response = await fetch("/api/pdf?url=" + text);
      const blob = await response.blob();
      const url = window.URL.createObjectURL(new Blob([blob]));
      const link = document.createElement("a");
      link.href = url;
      link.setAttribute("download", "awesomeIron.pdf");
      document.body.appendChild(link);
      link.click();
      link.parentNode.removeChild(link);
    } catch (error) {
      console.error("Error generating PDF:", error);
    }
  };

  // Handle changes in the input text field
  const handleChange = (event) => {
    setText(event.target.value);
  };

  return (
    <div className={styles.container}>
      <Head>
        <title>Generate PDF Using IronPDF</title>
        <link rel="icon" href="/favicon.ico" />
      </Head>
      <main>
        <h1>Demo Linkify and Generate PDF Using IronPDF</h1>
        <p>
          <span>Enter URL to Linkify and Convert to PDF:</span>{" "}
        </p>
        <input type="text" value={text} onChange={handleChange} />
        <Linkify properties={{target: '_blank'}}>
          <p>
            Clickable links from input text: {text}
          </p>
        </Linkify>
        <button style={{margin: 20, padding: 5}} onClick={generatePdf}>
          Generate PDF From Link
        </button>
      </main>
      <style jsx>{`
        main {
          padding: 5rem 0;
          flex: 1;
          display: flex;
          flex-direction: column;
          justify-content: center;
          align-items: center;
        }
        footer {
          width: 100%;
          height: 100px;
          border-top: 1px solid #eaeaea;
          display: flex;
          justify-content: center;
          align-items: center;
        }
        footer img {
          margin-left: 0.5rem;
        }
        footer a {
          display: flex;
          justify-content: center;
          align-items: center;
          text-decoration: none;
          color: inherit;
        }
        code {
          background: #fafafa;
          border-radius: 5px;
          padding: 0.75rem;
          font-size: 1.1rem;
          font-family:
            Menlo,
            Monaco,
            Lucida Console,
            Liberation Mono,
            DejaVu Sans Mono,
            Bitstream Vera Sans Mono,
            Courier New,
            monospace;
        }
      `}</style>
      <style jsx global>{`
        html,
        body {
          padding: 0;
          margin: 0;
          font-family:
            -apple-system,
            BlinkMacSystemFont,
            Segoe UI,
            Roboto,
            Oxygen,
            Ubuntu,
            Cantarell,
            Fira Sans,
            Droid Sans,
            Helvetica Neue,
            sans-serif;
        }
        * {
          box-sizing: border-box;
        }
      `}</style>
    </div>
  );
}
JAVASCRIPT

Kod Açıklaması

  1. Linkify Entegrasyonu:

    • Linkify bileşeni, bağlantı metni içeren HTML etiketinin etrafını sarar.
    • Metin içindeki tespit edilen URL veya e-postayı otomatik olarak tıklanabilir bir bağlantıya dönüştürür.
  2. PDF Üretimi:
    • 'PDF Üret' düğmesi tıklandığında, uygulama URL'den bir PDF üretmek için arka uç API'sini çağırır.
    • Bu API, web sayfasını URL'den alır ve indirilebilir bir PDF belgesine dönüştürür.

Çıktılanan PDF Üretim Sayfası

linkify-react (Nasıl Çalışır: Geliştiriciler İçin Bir Kılavuz): Şekil 2 - PDF oluşturma için çıktılan sayfa

Sonuç PDF

linkify-react (Nasıl Çalışır: Geliştiriciler İçin Bir Kılavuz): Şekil 3 - 'PDF Oluştur' düğmesine tıklamaktan çıkan PDF

IronPDF Lisansı

Lisans Anahtarını buraya yerleştirin:

import { IronPdfGlobalConfig, PdfDocument } from "@ironsoftware/ironpdf";

// Apply your IronPDF license key
IronPdfGlobalConfig.getConfig().licenseKey = "Add Your license key here";
import { IronPdfGlobalConfig, PdfDocument } from "@ironsoftware/ironpdf";

// Apply your IronPDF license key
IronPdfGlobalConfig.getConfig().licenseKey = "Add Your license key here";
JAVASCRIPT

Sonuç

React Linkify, React uygulamalarındaki metin içeriğinde tıklanabilir bağlantılar oluşturma sürecini basitleştirir. URL'lerin, e-posta adreslerinin ve diğer bağlantıların tespit edilmesini ve tıklanabilir bağlantılara dönüştürülmesini otomatikleştirerek, Linkify geliştirme iş akışını hızlandırır ve kullanıcı deneyimini iyileştirir. Kolay entegrasyonu, özelleştirme seçenekleri ve güçlü işlevselliği ile React Linkify, çekici ve kullanıcı dostu arayüzler oluşturmak isteyen React geliştiricileri için değerli bir araçtır.

Bunun dışında, IronPDF, uygulamalarına kapsamlı PDF üretim, manipülasyon ve düzenleme yeteneklerini entegre etmek isteyen geliştiriciler için tasarlanmış sağlam bir Node.js kütüphanesi olduğunu kanıtlamıştır. Farklı formatları PDF'e dönüştürme, mevcut PDF belgelerini düzenleme ve PDF güvenliğini yönetme desteği ile, IronPDF Node.js ortamında programatik olarak PDF dosyaları oluşturma ve özelleştirme için çok yönlü bir araç seti sağlar. Özellikleri, basit belge üretiminden karmaşık belge yönetim görevlerine kadar geniş bir yelpazeye hitap eder, bu da onu PDF'lerle çalışan Node.js geliştiricileri için değerli kılar.

Darrius Serrant
Tam Yığın Yazılım Mühendisi (WebOps)

Darrius Serrant, Miami Üniversitesi'nden Bilgisayar Bilimi alanında Lisans Derecesine sahip ve Iron Software'de Tam Yığın WebOps Pazarlama Mühendisi olarak çalışıyor. Genç yaşlardan itibaren kodlamaya çekildi, bilgisayar bilimi hem gizemli hem de erişilebilir olarak görüldü ve bu özellik, yaratıcılık ...

Daha Fazla Oku

Iron Destek Ekibi

Haftada 5 gün, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara